pandas 使用Python对列中每个唯一值的不同列中的值求和、求最大值和求平均值

jpfvwuh4  于 2023-02-06  发布在  Python
关注(0)|答案(1)|浏览(112)

我有一个Pandas的数据框是这样的:

df = pd.DataFrame({'date': [1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 7, 7],
                   'machine': ['a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'c', 'a', 'b', 'e', 'a', 'b'],
                   'meters': [12, 9, 7, 9, 4, 9, 3, 7, 12, 9, 7, 9, 4, 9]},
)

使用一个函数,对于'machine'列中的每个唯一值,我想自动打印如下语句:

  • 对于机器,总和为39

机器平均值为6.5
对于机器,最大值为12

  • 对于B机器,总和为50

对于B,机器平均值为8.3
对于B机器,最大值为9

  • 对于c机器,总和为12

对于c,机器平均值为12
对于c机器,最大值为12

  • 对于e机器,总和为9

对于e机器,平均值为9
对于e机器,最大值为9
基本上我该怎么写定义呢?

6tdlim6h

6tdlim6h1#

machine分组,并将每组的meters相加:

for m, s in df.groupby('machine')['meters'].sum().items():
    print(f'For {m} machine sum is {s}')
For a machine sum is 39
For b machine sum is 50
For c machine sum is 12
For e machine sum is 9
    • UPD:**(由于扩展要求)

对于更扩展的聚合,请使用以下方法(应用了.agg函数):
一个二个一个一个

相关问题