python - 将 pandas 数据框列合并为 1 列并忽略 NaN
问题描述
在 python 3.7 和 pandas 1.3.0
如果有一个数据框 df 列 a,b,c
df=pd.DataFrame(
[
{'a':'1'},
{'b':''},
{'c':'3'}
])
尝试使用将 a、b、c 列组合成新的 abc 列
df['abc'] = df.a.astype(str) + ' ' + df.b.astype(
str) + ' ' + df.c.astype(str)
这将使列像
>>> df['abc']
0 1 nan nan
1 nan nan
2 nan nan 3
无论如何我可以将这 3 列合并为一列,而如果该列为空则不返回任何值?像这样的东西:
>>> df['abc']
0 1
1
2 3
谢谢!
解决方案
是的,你可以ffill
s = df.ffill(axis=1).iloc[:,-1]
Out[59]:
0 1
1
2 3
Name: c, dtype: object
推荐阅读
- php - 如何在多维数组中查找制造商的产品数量
- offline - 如何在 Android 中存储媒体 DRM 密钥以供离线使用
- go - 具有多个模块的单存储库中的 Go 模块名称是否有约定?
- r - 在 R Shiny 中的会话后修改和读取全局变量
- python - 如何使用 QSortFilterProxyModel 在 QTreeView 中重新启用手动列布局
- python - 我有一个使用 sqlalchemy 和 python 连接到 sql server 的问题
- html - 自动调整角框大小
- android - LiveData 没有一致地更新视图
- sql - CONCAT 语法每次都出错
- c++ - 为 C/C++ 永久分配 MPI 通信器