gpt4 book ai didi

python - 如何在 Pandas 中仅内爆(爆炸的反向)非空值。使用 pandas group by 将多行合并为单行

转载 作者:行者123 更新时间:2023-12-05 01:27:49 24 4
gpt4 key购买 nike

我正在研究 Python Pandas。

我有一个包含如下列的 pandas 数据框:

<表类="s-表"><头>身份证城市<正文>1纽约1''1亚特兰大2东京2京都2''3巴黎3波尔多3''4孟买4''4类加罗尔5伦敦5''5伯明翰

请注意列中的空单元格为空字符串 ('') 或 Nan 或 None。 (为简单起见,我们只说它们是空字符串 (''))。

我希望结果是这样的:

<表类="s-表"><头>身份证城市<正文>1纽约,亚特兰大2东京、京都3巴黎、波尔多4孟买、类加罗尔5伦敦,伯明翰

简而言之,我想按 ID 分组,然后获取列表(通过删除空字符串)。

我有一个示例代码,但它实际上给我的结果是空字符串,我想删除空字符串。

dataFrame.groupby(['ID'], as_index=False)
.agg({'Cities': lambda x: x.tolist()})

它给了我这样的结果:

<表类="s-表"><头>身份证城市<正文>1纽约, ,亚特兰大2东京, 京都,3巴黎、波尔多、4孟买, , 类加罗尔5伦敦, , 伯明翰

但我不想要空字符串...

请帮帮我。

非常感谢您的帮助。

最佳答案

您可以尝试用 NaN 替换空字符串,然后添加 .dropna()聚合 lambda 函数,如下所示:

df['Cities'] = df['Cities'].replace('', np.nan)

(df.groupby('ID', as_index=False)
.agg({'Cities': lambda x: x.dropna().tolist()})
)

结果:

   ID                Cities
0 1 [New York, Atlanta]
1 2 [Tokyo, Kyoto]
2 3 [Paris, Bordeaux]
3 4 [Mumbai, Bangalore]
4 5 [London, Bermingham]

关于python - 如何在 Pandas 中仅内爆(爆炸的反向)非空值。使用 pandas group by 将多行合并为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69169460/

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