首页 > 解决方案 > 将数据框添加到特定行和列的现有数据框

问题描述

我有一个循环,每次创建一个带有表单的数据框(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)?

标签: pandasdataframeappendrowconcat

解决方案


在这种情况下,合并是合并列的方法。使用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')

推荐阅读