如何使用连接来填充列的缺失值 - Python Pandas?

Posted

技术标签:

【中文标题】如何使用连接来填充列的缺失值 - Python Pandas?【英文标题】:How to use join to fill missing values of a column - Python Pandas? 【发布时间】:2015-07-25 10:45:49 【问题描述】:

具体来说,假设我们有两个 DataFrame:

df1:

date    A
12/1/14 3
12/2/14 NaN
12/3/14 2
12/2/14 NaN
12/4/14 NaN
12/6/14 5

df2:

        B
12/2/14 20
12/4/14 30

我想做一种左外连接来填充 df1 中的缺失值,并生成

df3:

date    A
12/1/14 3
12/2/14 20
12/3/14 2
12/2/14 20
12/4/14 30
12/6/14 5

有什么有效的方法吗?

【问题讨论】:

【参考方案1】:

你可以使用combine_first(只有列名应该匹配,所以我先在df2中重命名B列):

In [8]: df2 = df2.rename(columns='B':'A')

In [9]: df1.combine_first(df2)
Out[9]:
          A
12/1/14   3
12/2/14  20
12/2/14  20
12/3/14   2
12/4/14  30
12/6/14   5

【讨论】:

以上是关于如何使用连接来填充列的缺失值 - Python Pandas?的主要内容,如果未能解决你的问题,请参考以下文章

R语言把dataframe数据转化为tibble格式查看每个数据列的缺失值个数使用数据列的均值对数据列的缺失值进行填充

填写缺失的日期值并根据前一行填充第二列

如何使用python有效地填充“缺失时间模式”和“填充它们”具有特定值?

R数据框 - 用另一列的条件填充缺失值

python 特征缺失值填充

pandas使用shift偏移dataframe中时间列计算相邻两列的时间差如果shift参数为-1则指定列向上移动1个位置,使用前向填充进行缺失值填充