簡體   English   中英

需要幫助對數據進行排序

[英]Need help Sorting Through Data

我正在嘗試為計算生物學研究項目清理一些數據。 然而,出現了一個問題,即同一窩同一窩出生的一些狗有相同的母親,但有多個父親。 我需要找到這些數據點並將它們返回,以便我可以手動將 go 返回文檔並檢查它們。 有誰知道更好的方法,使每組不需要 30 多分鍾才能完成?

到目前為止,我一直在嘗試通過數據使用 pandas 到 go,而且我不是 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])

您可以按出生日期和母親對數據進行分組,然后計算父親列的不同值的數量。 將為每組 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 時間。

北斗系統

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM