给出这个数据示例,我希望通过mergin info按一列删除行,而不是删除行。在本例中是字段代码。你知道吗
df = pd.DataFrame({'CODE':['000', '111','111','222','222', '333'],'NAME':['help','foo','bar', 'bla','booo','nyaa'] ,'ALT_NAME':['zzz','foo 1','bar', 'bl','bo','rrr'] })
print(df)
输出:
ALT_NAME CODE NAME
0 zzz 000 help
1 foo 1 111 foo
2 bar 111 bar
3 bl 222 bla
4 bo 222 booo
5 rrr 333 nyaa
结果是:
ALT_NAME CODE NAME
0 zzz 000 help
1 [foo 1, bar] [111,111] [foo,bar]
2 [bl,bo] [222,222] [bla,boo]
3 rrr 333 nyaa
我已接近解决方案,但无法实现:
线索:
df.groupby('CODE')['ALT_NAME','NAME'].apply(list).reset_index()
但这对几个专栏来说是行不通的
我认为这对您很有用,
agg
是aggregate
的别名,它应用于组的每个列:顺便说一句,有人知道我运行
df.groupby(['CODE']).agg(list)
时失败的原因吗?你知道吗用途:
输出:
在我看来,最好是按^{} 创建所有值的列表,但首先按^{} 列创建
index
:输出:
但如果需要,可以在lambda函数中添加
if-else
:输出:
相关问题 更多 >
编程相关推荐