我想将数据框中的行分组,给定一列。然后我想接收一个经过编辑的数据帧,我可以决定哪个聚合函数有意义。默认值应该只是组中第一个条目的值。
(如果解决方案也适用于两个列的组合,那就更好了)
#!/usr/bin/env python
"""Test data frame grouping."""
# 3rd party modules
import pandas as pd
df = pd.DataFrame([{'id': 1, 'price': 123, 'name': 'anna', 'amount': 1},
{'id': 1, 'price': 7, 'name': 'anna', 'amount': 2},
{'id': 2, 'price': 42, 'name': 'bob', 'amount': 30},
{'id': 3, 'price': 1, 'name': 'charlie', 'amount': 10},
{'id': 3, 'price': 2, 'name': 'david', 'amount': 100}])
print(df)
提供数据帧:
amount id name price
0 1 1 anna 123
1 2 1 anna 7
2 30 2 bob 42
3 10 3 charlie 1
4 100 3 david 2
我想得到:
amount id name price
3 1 anna 130
30 2 bob 42
110 3 charlie 3
所以:
id
列中具有相同值的条目属于一起。在该操作之后,仍然应该有一个id
列,但它应该只有唯一的值。amount
和price
中具有相同id
的所有值相加name
,只取第一个(按数据帧的当前顺序)。这对熊猫有可能吗?
对于相同的列,必须添加^{} ,因为按
dict
聚合:你在找
它给予
相关问题 更多 >
编程相关推荐