将2个熊猫数据框附加到行和列的子集

Ratchainant Thammasudjarit

我有2个这样的数据框

df = pd.DataFrame({"date":["2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04"],
                   "A": [1., 2., 3., 4.],
                   "B": ["a", "b", "c", "d"]})
df["date"] = pd.to_datetime(df["date"])

df_new = pd.DataFrame({"date":["2019-01-02", "2019-01-03", "2019-01-04", "2019-01-05", "2019-01-06"],
                       "A": [2, 3.5, 4, 5., 6.],
                       "B": ["b", "c1", "d", "e", "f"]})
df_new["date"] = pd.to_datetime(df_new["date"])

所以,我的数据框看起来像这样

df
-----------------------
date            A    B
2019-01-01      1    a
2019-01-02      2    b
2019-01-03      3    c
2019-01-04      4    d

df_new
----------------------
date            A    B
2019-01-02      2    b
2019-01-03      3.5  c1
2019-01-04      4    d
2019-01-05      5    e
2019-01-06      6    f

从这些数据框中,我想将df附加到df_new,并具有特定条件,如下所示:

  1. 两个数据框中都有日期的任何行,我们将这些行放在df_new中

  2. 在df中有日期但在df_new中没有日期的任何行,我们在df中采用此类行

最后我的预期输出看起来像这样

Expected output
----------------------
date            A    B
2019-01-01      1    a      (take from df)
2019-01-02      2    b      (take from df_new)
2019-01-03      3.5  c1     (take from df_new)
2019-01-04      4    d      (take from df_new)
2019-01-05      5    e      (take from df_new)
2019-01-06      6    f      (take from df_new)

我可以考虑找到两个数据框之间的行差异,但是当我考虑到日期列时,它行不通。请问您有什么建议吗?谢谢。

耶斯列尔

concatdate使用和删除重复项DataFrame.drop_duplicates,最后按以下方法创建默认的uniqe索引值DataFrame.reset_index

df = pd.concat([df, df_new]).drop_duplicates('date', keep='last').reset_index(drop=True)
print (df)
        date    A   B
0 2019-01-01  1.0   a
1 2019-01-02  2.0   b
2 2019-01-03  3.5  c1
3 2019-01-04  4.0   d
4 2019-01-05  5.0   e
5 2019-01-06  6.0   f

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫-使用for循环将多个列附加到数据框

将数据附加到熊猫数据框

熊猫:基于列值合并2个数据框;对于包含相同列值的多个行,请将其附加到不同的列

熊猫:将数据附加到熊猫数据框的问题

将数据框附加到另一个数据框的列和Python常量

熊猫将数据框附加到聚合数据框

如何使用熊猫根据日期列和天数列将行添加到数据框

将列表追加到熊猫数据框的第一行和第一列

将数据附加到熊猫数据框中

熊猫:将数据框附加到另一个df

将文件中的确切行附加到熊猫数据框

如何使用MultiIndex将“总计”行附加到熊猫数据框

熊猫-合并两个数据框,创建新列,将值附加到数组

如何将数据框的每一列附加到熊猫系列中?

如何将Beautifulsoup的输出附加到熊猫数据框

将Numpy ndarray附加到熊猫数据框

将数据附加到新行而不更改前一行和索引号熊猫

熊猫数据框-将列添加到另一个数据框

按列将两个Pandas系列附加到一个数据框

将特定列从熊猫数据框添加到另一个熊猫数据框

大熊猫:将数据行附加到数据框,并使用在选定列上应用的用户定义公式得出值

将pd.value_counts()和定义的变量附加到数据框的一行

Pyspark - 通过定位“上一个”记录将新列附加到数据框

如何通过for循环将值附加到数据框中列的行?

将数据框行附加到列的向量化方法,反之亦然

大熊猫将数据框附加到另一个不合并列值

熊猫根据另一个数据框将多个列和行值设置为nan

熊猫使用两个索引将行追加到数据框

将日期和浮动附加到 Pandas 数据框