python - 如何在熊猫数据框中创建一个逗号分隔列表作为新列
问题描述
我有如下数据框(df)。
如果有的话,我也想跳过空值。
输入
A B C
a@gmail.com y@yahoo.com g@mail.com
b@gmail.com
c@gmail.com g@gmail.com d@gmail.com
d@gmail.com t@gmail.com
r@gmail.com y@gmail.com
输出
A B C Merged
a@gmail.com y@yahoo.com g@mail.com a@gmail.com,y@yahoo.com,g@mail.com
b@gmail.com b@gmail.com
c@gmail.com g@gmail.com d@gmail.com c@gmail.com,g@gmail.com,d@gmail.com
d@gmail.com t@gmail.com d@gmail.com,t@gmail.com
r@gmail.com y@gmail.com r@gmail.com,y@gmail.com
如何使用熊猫来做到这一点?
解决方案
使用(更新以处理 '' vs NaN):
df.replace('', np.nan).apply(lambda x: x.str.cat(sep=', '), axis=1)
输出:
0 a@gmail.com, y@yahoo.com, g@mail.com
1 b@gmail.com
2 c@gmail.com, g@gmail.com, d@gmail.com
3 d@gmail.com, t@gmail.com
4 r@gmail.com, y@gmail.com
dtype: object
喜欢,
df['merged'] = df.replace('', np.nan).apply(lambda x: x.str.cat(sep=', '), axis=1)
输出:
A B C merged
0 a@gmail.com y@yahoo.com g@mail.com a@gmail.com, y@yahoo.com, g@mail.com
1 b@gmail.com NaN NaN b@gmail.com
2 c@gmail.com g@gmail.com d@gmail.com c@gmail.com, g@gmail.com, d@gmail.com
3 d@gmail.com NaN t@gmail.com d@gmail.com, t@gmail.com
4 NaN r@gmail.com y@gmail.com r@gmail.com, y@gmail.com
推荐阅读
- bixby - 如何训练 bixby 胶囊对数百万、数十亿等数量或价值进行语音识别?
- linux - 如何使用我的 bitbucket git repo 自动更新我的测试网络应用程序?
- c# - C# 使用包含俄语字母的 LuaInterface 读取 LuaTable
- excel - 使用VBA在excel公式中增加包含单元格引用的变量
- javascript - 有没有办法增加自定义 HTML 属性?
- java - 为什么我的程序两次打印同一行“Student #”?
- c# - 在 C# 的 ifelse 循环中增加 foreach 的值
- c# - Delphi COM 对象未出现在 .NET 中
- c# - C# 中的“超出数组范围”错误
- spring - 无法@Autowire 实现类,代理混淆