1

伙计们,我是刚开始学习 Python 和 pandas 的人。所以我有两个数据框,我们称它们为df1df2。我需要将 df1 的“现代化”列中的 NaN 行替换为 df2 的“现代化”列中的行。我尝试了下面的方法,但似乎不起作用,您能帮帮我吗?我会尝试逻辑索引,但是必须替换的行(在 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")]
                      })

提前谢谢大家!

4

0 回答 0