根据另一个数据框的值替换一个数据框的NaN

时间:2020-09-16 12:52:27

标签: python pandas numpy dataframe jupyter-notebook

章,我是刚开始学习Python和熊猫的人之一。因此,我有两个数据框,可以将它们称为 df1 df2 。我需要用df2的“现代化”中的那些替换df1的“现代化”列中的NaN行。我尝试了以下方法,但似乎无法正常工作,所以您能帮我吗? 我本来可以尝试逻辑索引,但是必须替换的行(在df1中)大约为300,因此我需要一些可以执行的操作,而无需调用和遍历这300行。下面是df1和df2。

我的方法:

for platform in df['platform'].dropna().unique():
   df1.loc[(df1['platform'] == platform) & (df1['released'].isna()), 'released2'] = \
                       2.loc[df2.loc['platform'] == platform, 'released'].values[0]



df1 = pd.DataFrame(
{"name": ['FX4', 'TR55', 'KL55', 'MS-KL', 'UU-KL'],
 "impedance": [-44, 55, 4, 4, 8],
 "modernized": [pd.Timestamp("2020-01-23"), 
                pd.Timestamp("2020-04-25"),
                pd.NaT, 
                pd.NaT, 
                pd.NaT]
}
)

   df2 = pd.DataFrame({
                       "name": [ 'KL55', 'MS-KL', 'UU-KL'],
                       "modernized": [pd.Timestamp("2020-04-20"),  
                                      pd.Timestamp("2020-04-25"),
                                      pd.Timestamp("2020-08-23")]
                      })

提前感谢大家!

0 个答案:

没有答案