Python 根据列中的值组合熊猫中的两行并创建新类别
我最感兴趣的是如何以一种优秀的方式完成这项工作 在本例中,来自大阪的数据Python 根据列中的值组合熊猫中的两行并创建新类别,python,pandas,Python,Pandas,我最感兴趣的是如何以一种优秀的方式完成这项工作 在本例中,来自大阪的数据Tim有两个水果 import pandas as pd data = {'name': ['Susan', 'Tim', 'Tim', 'Anna'], 'fruit': ['Apple', 'Apple', 'Banana', 'Banana'], 'town': ['Berlin', 'Osaka', 'Osaka', 'Singabpur']} df = pd.DataFrame(
Tim
有两个水果
import pandas as pd
data = {'name': ['Susan', 'Tim', 'Tim', 'Anna'],
'fruit': ['Apple', 'Apple', 'Banana', 'Banana'],
'town': ['Berlin', 'Osaka', 'Osaka', 'Singabpur']}
df = pd.DataFrame(data)
print(df)
结果
name fruit town
0 Susan Apple Berlin
1 Tim Apple Osaka
2 Tim Banana Osaka
3 Anna Banana Singabpur
我调查了这些数据,发现其中一个人有多种水果。我想为它创建一个新的“类别”,名为香蕉和水果(或其他)。关键是Tim
的其他字段的值相等
df.groupby(['name', 'town', 'fruit']).size()
我不确定这是否是探索此数据集的正确方法。背后的逻辑问题是,一些人+城镇组合是否有多重结果
因此,我想要这个
name fruit town
0 Susan Apple Berlin
1 Tim Apple&Banana Osaka
2 Anna Banana Singabpur
使用:
new_df
:
name town fruit
0 Susan Berlin Apple
1 Tim Osaka Apple&Banana
2 Anna Singabpur Banana
我总是忘了本月排名前十的gg和sort=False+1.
new_df = (
df.groupby(['name', 'town'], as_index=False, sort=False)
.agg(fruit=('fruit', '&'.join))
)
name town fruit
0 Susan Berlin Apple
1 Tim Osaka Apple&Banana
2 Anna Singabpur Banana