python - 列表的 DataFrame 列和 NaN 到 String
问题描述
我尝试将列表的 DataFrame 列转换为字符串。该列包含列表和 NaN 值
桌子:
id col_list
1 ['Lorem ipsum dolor sit amet', 'Donec non sem convallis', 'vulputate odio']
2 NaN
3 ['Mauris diam purus', 'luctus in rutrum venenatis', 'eros in luctus lobortis']
4 ['Lorem ipsum dolor sit amet']
输出:
id col_list
1 'Lorem ipsum dolor sit amet, Donec non sem convallis, vulputate odio'
2 NaN
3 'Mauris diam purus, luctus in rutrum venenatis, eros in luctus lobortis
4 'Lorem ipsum dolor sit amet'
以下方法会引发此错误消息
df['col_list'] = [','.join(elems) for elems in df['col_list']]
TypeError: can only join an iterable
解决方案
使用apply
:
mask = ~df['col_list'].isna()
df.loc[mask , 'col_list'] = df.loc[mask, 'col_list'].apply(lambda x: ', '.join(x))
#or
df.loc[mask, 'col_list'] = [','.join(elems) for elems in df.loc[mask, 'col_list']]
推荐阅读
- html - 向右浮动不工作
- business-intelligence - 商业智能与分析
- jsf - p:textEditor : 默认值
- cloudera - 无法从 Talend(本地)连接到 Impala(在 AWS 上)
- java - 设置clientId时,多个主题的多个ActiveMQ侦听器无法在spring boot项目中连接
- keras - Keras 强化学习:如何将奖励传递给模型
- powershell - Golang 调用 PowerShell.exe 总是返回 ASCII 字符
- jquery - 在jQuery中获取最近的元素
- c# - 如何对抽象关联建模?
- python - 如何更改 Django 管理页面的名称?