python - 合并 Pandas 数据框中的列
问题描述
我有一个包含三列的数据框
Col1 Col2 Col3 Col4 Col 5
---------------------------------
Apple None 192 abc None
Banana Banana 89 None bcd
None Cake 892 aaa aaa
我想合并两列,即 Col1 和 Col2 以及 col1 和 col5 如果没有一列而其他列有值,则使用该值,如果两者都有值,则使用该值。
是否可以合并这样的列。
Col1 Col3 Col4
----------------------
Apple 192 abc
Banana 89 bcd
Cake 892 aaa
解决方案
使用(如果 None 是首先替换为np.nan
:的字符串df=df.replace('None',np.nan)
):
df_new=df.ffill().bfill()[['Col1','Col3']]
print(df_new)
Col1 Col3
0 Apple 192
1 Banana 89
2 Banana 892
根据更新:
df.bfill(axis=1)[['Col1','Col3','Col4']]
Col1 Col3 Col4
0 Apple 192 abc
1 Banana 89 bcd
2 Cake 892 aaa
推荐阅读
- laravel - 如何清除缓存 Laravel?
- android - TensorFlow 图像分类 Android 示例构建失败
- animation - THREE.AnimationClip 在 play() 期间始终包含默认姿势关键帧
- r - 如何保存和恢复 XML 文档列表
- selenium-webdriver - 我想要可以通过进一步单击链接访问的原始数据
- c++ - 在调试期间获取 lldb 中的类静态成员函数地址:解释器在执行期间无法解析值
- javascript - 如果在 express js 中间件中调用,为什么函数表达式会被提升?
- javascript - 如何将此条件语句从 Python 转换为 JS
- python - 如何使用并行处理加速 python 函数?
- sql - Hibernate-Envers 审计查询:选择最新的实体版本,其中字段等于所有实体的值