熊猫系列纵向合并

Posted

技术标签:

【中文标题】熊猫系列纵向合并【英文标题】:Vertical Merging of Pandas Series 【发布时间】:2018-01-08 16:53:45 【问题描述】:

我目前有两个共享一个公共列的数据框,如下所示:

df1 = 
    Text    Val
    "This"     1
    "That"     2
    "Is"       3
    "Not"      ''
    "Working"  ''

df2 = 
    Text    Val
    "This"     ''
    "That"     ''
    "Is"       ''
    "Not"      4
    "Working"  5

我想通过以下方式合并两个数据框:

merged_df = 
    Text    Val
    "This"     1
    "That"     2
    "Is"       3
    "Not"      4
    "Working"  5

本质上,两个数据框 df1 和 df2 都共享一个共同的“文本”列。所有的值都是相似的。但是,在 df1 中,没有对应于“Not”和“Working”的行的值,但这些在 df2 中可用。

一种方法如何将这些堆叠在一起以得出merged_df?

与我的实际数据相比,这些示例微不足道,但希望这会有所帮助

【问题讨论】:

【参考方案1】:

您可以使用combine_firstset_index 来对齐数据并替换为NaNs(如有必要):

df1['Val'] = df1['Val'].replace("''",np.nan)
df2['Val'] = df2['Val'].replace("''",np.nan)

df = df1.set_index('Text').combine_first(df2.set_index('Text')).reset_index()
print (df)
      Text Val
0     This   1
1     That   2
2       Is   3
3      Not   4
4  Working   5

【讨论】:

谢谢@jezrael!我不知道 pandas 中的 combine_first 方法。 很高兴能帮上忙,美好的一天!

以上是关于熊猫系列纵向合并的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫中循环合并多个系列

合并具有不同索引的熊猫系列(对齐一个索引)

如何将日期和小时列合并到熊猫系列中的一个索引列中?

在数据框中合并两个熊猫系列而不显式使用键

如何合并熊猫的数据?

熊猫合并索引不起作用