需要帮助分类D吗

2024-05-23 15:01:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个计算生物学研究项目整理一些数据。然而,一个问题即将出现,一些狗出生从同一窝在同一天有相同的母亲,但多个父亲。我需要找到这些数据点并返回它们,以便手动返回到文档并检查它们。有没有人知道一个更好的方法,使每一套不需要30多分钟完成?你知道吗

到目前为止,我一直在尝试使用pandas来浏览数据,我不是CS向导。我基本上使用for循环逐个检查数据,即使是较小的数据集也有大约10k的数据。你知道吗

data = raw_data.loc[:,['Order', 'Name', 'Sire', 'Dam', 'Registration', 'DOB']]
length = len(data.index)

for i in range(0,length,1):
    for j in range(i+1,length,1):
        if (data.iat[i,5]==data.iat[j,5]): #Same date of birth
            if (data.iat[i,3]==data.iat[j,3]): #Same mother
                if (data.iat[i,2]!= data.iat[j,2]): #Different father
                    print(data.iat[i,0]+data.iat[j,0])

Tags: 数据项目infordataifrange手动
2条回答

您可以按出生日期和母亲对数据进行分组,然后计算父列中不同值的数目。将对每组DOB和Dam计算结果。您将对结果大于1的所有组感兴趣。你知道吗

import pandas as pd
data.groupby(by=['DOB','Dam']).\ # Group your data by 'DOB' and 'Dam'
aggregate({'Sire':pd.Series.nunique}).\ # Count distinct values for 'Sire' in each group
sort_values(by="Sire", ascending= False).\ # Descending order of the results
query("Sire > 1").\ # Take the 'DOB' and 'Dam' pairs with more than 1 'Sire'
to_excel("File_with_results.xlsx") # Write the results to an excel file

欢迎使用Stackoverflow。你知道吗

除了米格尔的建议之外,还有一个建议

为了进行测试,我会把你的文件精简为一个小样本,其中包括你正在处理的问题。你不想浪费CPU时间,直到你知道程序的行为。你知道吗

投标资料表

相关问题 更多 >