pandas - 将数据框添加到特定行和列的现有数据框
问题描述
我有一个循环,每次创建一个带有表单的数据框(DF)
东风
ID LCAR RCAR ... LPCA1 LPCA2 RPCA2
0 d0129 312.255859 397.216797 ... 1.098888 1.101905 1.152332
然后使用这种形式将该数据框添加到现有数据框(main_exl_df)中:
main_exl_df
ID Date ... COGOTH3 COGOTH3X COGOTH3F
0 d0129 NaN ... NaN NaN NaN
1 d0757 NaN ... 0.0 NaN NaN
2 d2430 NaN ... NaN NaN NaN
3 d3132 NaN ... 0.0 NaN NaN
4 d0371 NaN ... 0.0 NaN NaN
... ... ... ... ... ... ...
2163 d0620 NaN ... 0.0 NaN NaN
2164 d2410 NaN ... 0.0 NaN NaN
2165 d0752 NaN ... NaN NaN NaN
2166 d0407 NaN ... 0.0 NaN NaN
在每次迭代时 main_exl_df 被保存,然后为下一次迭代再次加载。
我试过
main_exl_df = pd.concat([main_exl_df, DF], axis=1)
但这每次都会将列添加到 main_exl_df 的右侧,并且如果“ID”行不识别索引。
如何指定在具有正确 ID 和右列的行中添加新的数据框(DF)?
解决方案
在这种情况下,合并是合并列的方法。使用pd.merge时,需要指定合并是inner、left还是right。假设在这种情况下,您想保留 main_exl_df 中的所有行,您应该使用以下方法进行合并:
main_exl_df = main_exl_df.merge(DF, how='left', on='ID')
如果要保留两个数据框中的行,请outer
用作参数值:
main_exl_df = main_exl_df.merge(DF, how='outer', on='ID')
推荐阅读
- c# - 创建随机数并将它们存储在数组中
- sql - 如何在 DDL 中使用子查询?与 Oracle SQL Developer 相关的问题
- woocommerce - WooCommerce 产品图像交换在翻转时隐藏第一张图像
- javascript - 图片需要很长时间才能加载
- python - virtualenv 在 Windows 上无法正常工作
- android - 以编程方式连接 vpn 为 android ios 做出本机反应
- python - 显示关系的图表 - 多个非数字列
- css - CSS选择跨度
- sql - 未触发 SQL 继续处理程序
- c# - 抛出 StackOverflow 异常 - 不知道如何修复它