伙计们,我是刚开始学习 Python 和 pandas 的人。所以我有两个数据框,我们称它们为df1和df2。我需要将 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")]
})
提前谢谢大家!