我参加聚会迟到了,但我最近遇到了同样的问题,i.e.尝试更新数据框而不忽略像 Pandas 内置的 NaN 值update
方法确实如此。
对于共享相同列名的两个数据帧,解决方法是连接两个数据帧,然后删除重复项,只保留最后一个条目:
import pandas as pd
import numpy as np
df1 = pd.DataFrame(data = {'A' : [1,2,3,4], 'B' : [5,6,7,8]})
df2 = pd.DataFrame(data = {'A' : [1,2,3,4], 'B' : [9, np.nan, 11, np.nan]})
frames = [df1, df2]
df_concatenated = pd.concat(frames)
df1=df_concatenated.loc[~df_concatenated.index.duplicated(keep='last')]
根据索引,可能需要对输出数据帧的索引进行排序:
df1=df1.sort_index()
给你一个非常具体的例子df2
没有 A 列,您可以运行:
import pandas as pd
import numpy as np
df1 = pd.DataFrame(data = {'A' : [1,2,3,4], 'B' : [5,6,7,8]})
df2 = pd.DataFrame(data = {'B' : [9, np.nan, 11, np.nan]})
frames = [df1, df2]
df_concatenated = pd.concat(frames)
df1['B']=df_concatenated.loc[~df_concatenated.index.duplicated(keep='last')]['B']