首页 > 解决方案 > 对 CSV 文件的列(不包括标题)应用操作并更新最后一行的结果

问题描述

我有一个这样创建的 CSV 文件:

keep_same;get_max;get_min;get_avg
1213;176;901;517
1213;198;009;219
1213;898;201;532

现在我希望将第四行附加到现有的 CSV 文件中,如下所示:

First column: Remains same: 1213
Second column: Get max value: 898
Third column: Get min value: 009
Fourth column: Get avg value: 422.6

所以最终的 CSV 文件应该是:

keep_same;get_max;get_min;get_avg
1213;176;901;517
1213;198;009;219
1213;898;201;532
1213;898;009;422.6

请帮助我实现同样的目标。不是强制使用Pandas.

提前致谢!

标签: pythonpandascsvpython-3.6

解决方案


df.agg(...)接受一个字典,其中字典键是列的名称,值是执行所需聚合的字符串:

df_agg = df.agg({'keep_same': 'mode', 'get_max': 'max',
                 'get_min': 'min', 'get_avg': 'mean'})[df.columns]

产生:

   keep_same  get_max  get_min     get_avg
0       1213      898        9  422.666667

然后你只需附加df_aggdf

df = df.append(df_agg, ignore_index=False)

结果:

   keep_same  get_max  get_min     get_avg
0       1213      176      901  517.000000
1       1213      198        9  219.000000
2       1213      898      201  532.000000
0       1213      898        9  422.666667

请注意,附加行的索引是0ignore_index=True如果你愿意,你可以通过附加。

另请注意,如果您计划大量执行此附加操作,则会非常慢。在这种情况下确实存在其他方法,但对于一次性或仅几次,附加是可以的。


推荐阅读