如果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总是具有相同的行数,但并不总是具有相同的顺序,因此要复制的数据不正确。
df1
和df2
都将始终具有相同的行数并匹配'ID'
(唯一)。我相信我可以通过df1
对df2
和'ID'
进行排序,这应该可以解决我的问题,但是我认为这可能不如匹配ID那样健壮。
从逻辑上讲,这很容易,我只是添加了一个条件,以使用df1['ID']
查找匹配的df2['ID']
,但是我不知道该怎么做。我是大熊猫的新手,而且已经十多年没有编程了。
如果有人可以,请让我知道我该怎么做。
更新:
感谢大家的回答,但我真的在左,右,内,外等方面苦苦挣扎。
我做了一些研究,并设法找到了一些对我需要的东西效果很好的东西。我在下面的Date
Info
和Title
中使用了3次此代码。
df1['Date'] = df1['Date'].fillna(df1['ID'].map(df2.set_index('ID')['Date']))
感谢您的所有帮助