2
我有一個CSV數據集,看起來像這樣:Python的分組並得到平均值,最小值和最大值
Class, Code, Vendor, State, NumberOfDays
3, 123, Name1, NE, 12.58402778
1, 876, Name2, TX, 12.51041667
3, 123, Name1, NE, 2.354166667
1, 876, Name2, TX, 12.21111111
3, 456, Name2, NY, 6.346527778
2, 876, Name1, NY, 5.513194444
3, 123, Name1, NE, 5.38125
1, 876, Name2, TX, 5.409722222
我有以下代碼代碼:
df = pd.read_csv(r'C:\Python36\Data\testing\LowHighMean.csv')
df2 = df.groupby(['Class','Code','Vendor','State'])['NumberOfDays'].mean().apply(lambda x: '{:.2f}'.format(x))
df2.to_csv(r'C:\Python36\Data\testing\output.csv')
其中在偉大工程通過對其他字段進行分組,讓我獲得普通的「NumberOfDays」:
1,876,Name2,TX,10.04
2,876,Name1,NY,5.51
3,123,Name1,NE,6.77
3,456,Name2,NY,6.35
我似乎無法繼承hea但是這並不是什麼大問題,我只是把頭文件放在另一個步驟上。我試圖解決的問題是添加將提供最低min()
和最高max()
值的列。我期待這樣創建:
Class, Code, Vendor, State, AverageDays, LowestNumberOfDays, HighestNumberOfDays
1, 876, Name2, TX, 10.04, 5.41 12.51
2, 876, Name1, NY, 5.51, 5.51 5.51
3, 123, Name1, NE, 6.77, 2.35 12.58
3, 456, Name2, NY, 6.35, 6.35 6.35
啓動數據文件的大小超過3 gig和超過3000萬條記錄。轉換後文件大小變得更小。由於開始的文件大小,我試圖找出一種方法,我可以避免在四個不同的步驟中執行此操作。 3個獨立的步驟/運行得到mean()
,max()
和min()
,然後第四輪將它們組合。由於我是一個noob,我甚至不知道如何設置4組代碼並單獨運行文件4次。
那這麼快,一個 – Dark
我建議'df.groupby([」因爲它看起來更好:) – zipa
@zipa - 我試試看,不工作:( – jezrael