2017-07-26 85 views
1

我正在尋找與242000行搜索csv文件,並且想要在其中一列中求和唯一標識符。列名是'logid',並有許多不同的值,即1002,3004,5003.我想使用熊貓數據框搜索csv文件並對唯一標識符進行求和。如果可能的話,我想創建一個新的csv文件來存儲這些信息。例如,如果我發現有100個100的logid,那麼我想創建一個csv文件,其列名爲1004,下面顯示的計數爲50。我會爲所有唯一標識符執行此操作,並將它們添加到同一個csv文件中。我在這方面是全新的,並且已經做了一些搜索,但不知道從哪裏開始。使用熊貓搜索CSV文件(唯一的ID) - Python

謝謝!

+0

您好,歡迎StackOverflow上。請[見這裏](http://stackoverflow.com/help/how-to-ask)學習如何編寫有效的問題,並[在這裏](http://stackoverflow.com/help/mcve)學習如何創建最小,完整和可驗證的示例。 – cmaher

回答

0

因爲你沒有發佈你的代碼,我只能給你一個答案,只關於它的工作方式。

  1. 裝入CSV文件導入使用其中在一個單獨的DF1一個occurence> 1使用pandas.DataFrame.drop_duplicatespandas.read_csv
  2. 保存所有值的pd.Dataframe:

    DF1 = df.drop_duplicates(保持=」第一)

- >這將返回一個數據幀,其僅包含具有重複值的第一次出現的行例如,如果該值1000是在5行僅第一行將b中。當其他人被拋棄時,他們回來了。

- >應用df1.shape [0]會返回您df中重複值的數量。

3,如果你想存儲包含在你所要做的水木清華這樣一個單獨的CSV文件中的「重複值」 DF的所有行:

df=pd.DataFrame({"A":[0,1,2,3,0,1,2,5,5]}) # This should represent your original data set 
print(df) 

df1=df.drop_duplicates(subset="A",keep="first") #I assume the column with the duplicate values is columns "A" if you want to check the whole row just omit the subset keyword. 

print(df1) 
list=[] 


for m in df1["A"]: 
    mask=(df==m) 
    list.append(df[mask].dropna()) 

for dfx in range(len(list)): 
    name="file{0}".format(dfx) 
    list[dfx].to_csv(r"YOUR PATH\{0}".format(name)) 
+0

我可以幫你嗎? – 2Obe

+0

你需要任何附加信息嗎? – 2Obe