熊猫在数据混乱时从另一个数据框中复制值

时间:2020-08-27 00:02:08

标签: python pandas dataframe

如果df1中的那些列为空,我想将3列(日期,信息,标题)的数据从df2复制到df1。

我已经可以使用下面的代码来做到这一点,并且可以正常工作。

df1['Date'] = np.where(df1['Date'].isnull(),df2['Date'],df1['Date'])
df1['Info'] = np.where(df1['Info'].isnull(),df2['Info'],df1['Info'])
df1['Title'] = np.where(df1['Title'].isnull(),df2['Title'],df1['Title'])

我最近发现的是df1和df2总是具有相同的行数,但并不总是具有相同的顺序,因此要复制的数据不正确。

df1df2都将始终具有相同的行数并匹配'ID'(唯一)。我相信我可以通过df1df2'ID'进行排序,这应该可以解决我的问题,但是我认为这可能不如匹配ID那样健壮。

从逻辑上讲,这很容易,我只是添加了一个条件,以使用df1['ID']查找匹配的df2['ID'],但是我不知道该怎么做。我是大熊猫的新手,而且已经十多年没有编程了。

如果有人可以,请让我知道我该怎么做。

更新:
感谢大家的回答,但我真的在左,右,内,外等方面苦苦挣扎。
我做了一些研究,并设法找到了一些对我需要的东西效果很好的东西。我在下面的Date InfoTitle中使用了3次此代码。

df1['Date'] = df1['Date'].fillna(df1['ID'].map(df2.set_index('ID')['Date']))

感谢您的所有帮助

0 个答案:

没有答案