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