gpt4 book ai didi

python - 通过 Pandas 对重复项进行分组并组合字符串列

转载 作者:太空宇宙 更新时间:2023-11-03 14:05:28 24 4
gpt4 key购买 nike

假设我有以下名为 example 的 pandas 数据框:

city    state  school_lvl    schl_name     elem_name   middle_name   highschoo_name
Orlando fl 1 Union Park Union Park
Orlando fl 2 Legacy Legacy
Orlando fl 3 Colonial Colonial

其中 elem_name 等列是使用 school_lvlschl_name 上的 if 条件生成的

我想要的是

city    state  elem_name   middle_name   highschoo_name
Orlando fl Union Park Legacy Colonial

我该如何去做呢?由于没有聚合函数,这不是真正的追星族吗?我非常感谢任何帮助

最佳答案

使用groupby使用 lambda 函数进行前向和后向填充,然后 drop_duplicates按前 2 列和后 3 列:

c = example.columns[:2].tolist() + example.columns[-3:].tolist()
print (c)
['city', 'state', 'elem_name', 'middle_name', 'highschoo_name']

df = example.groupby(['city', 'state']).apply(lambda x: x.ffill().bfill()).drop_duplicates(c)
print (df)
city state school_lvl schl_name elem_name middle_name \
0 Orlando fl 1 Union Park Union Park Legacy

highschoo_name
0 Colonial

如果想要更简单地删除列,首先是 drop然后删除所有列的重复项:

example = example.drop(['school_lvl','schl_name'], axis=1)
df = example.groupby(['city', 'state']).apply(lambda x: x.ffill().bfill()).drop_duplicates()
print (df)
city state elem_name middle_name highschoo_name
0 Orlando fl Union Park Legacy Colonial

关于python - 通过 Pandas 对重复项进行分组并组合字符串列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48932059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com