Pandas数据帧中对象的有条件替换

2024-10-01 11:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧df_1df_2。两者都有一个索引datetimecode,它是一个pd.datetime64对象和一个temp列。我想遍历df_1,并用'df_2'中的相应temp替换所有NaN温度值。在

像这样:

for index, row in df_1.iterows():
      row['temp'] = df_2[index]['temp'] if row['temp'] ==np.nan

但这是无效的


Tags: 数据对象indfforindexifnan
2条回答

这就是你要找的:

df_1 = pd.DataFrame({'temp': [1,2,3,np.nan,5,np.nan,7]})
   temp
0   1.0
1   2.0
2   3.0
3   NaN
4   5.0
5   NaN
6   7.0

df_2 = pd.DataFrame({'temp': [8,9,10,11,12,13,14]})
   temp
0     8
1     9
2    10
3    11
4    12
5    13
6    14

df_1.temp.fillna(df_2['temp'], inplace=True)

   temp
0   1.0
1   2.0
2   3.0
3  11.0
4   5.0
5  13.0
6   7.0

   temp
0     8
1     9
2    10
3    11
4    12
5    13
6    14

IIUC公司

df_1.fillna(df_2, inplace=True)

或者

^{pr2}$

演示

^{3}$

enter image description here

df_1.loc[df_1.temp.isnull(), 'temp'] = df_2.temp

df_1

enter image description here

相关问题 更多 >