python-对来自2个数据帧的多个列进行条件填充
我有2个数据帧,我想用df2中的数据填充下面df1中的na,但团队列是否与df2中的h或v列匹配: 换句话说,用df2中的值填充df1['temp'、'wspd'、'cond'],其中df1['team']==df2['h']或df2['v'] df1: df2:python-对来自2个数据帧的多个列进行条件填充,python,pandas,fillna,Python,Pandas,Fillna,我有2个数据帧,我想用df2中的数据填充下面df1中的na,但团队列是否与df2中的h或v列匹配: 换句话说,用df2中的值填充df1['temp'、'wspd'、'cond'],其中df1['team']==df2['h']或df2['v'] df1: df2: 我将首先重塑df2,使v列和h列在一列中,然后将该列设置为索引: df2 = df2.melt(value_vars=['v','h'], \ id_vars=['temp','humd','wspd','cond'], valu
我将首先重塑df2,使v列和h列在一列中,然后将该列设置为索引:
df2 = df2.melt(value_vars=['v','h'], \
id_vars=['temp','humd','wspd','cond'], value_name='team').set_index('team')
# temp humd wspd cond variable
# team
# MIA 60.0 41.0 12.0 Mostly Sunny v
# MIN 47.0 58.0 14.0 Cloudy v
# CHI 70.0 0.0 0.0 Dome v
# ATL 66.0 83.0 17.0 Rain v
# IND 44.0 58.0 12.0 Cloudy v
从那里,您可以将team设置为df中的索引,并使用df.update:
哦,哇。我从来没用过,也没见过。太棒了。谢谢你教我新东西!
v h temp humd wspd cond
MIA BAL 60.0 41.0 12.0 Mostly Sunny
MIN CLE 47.0 58.0 14.0 Cloudy
CHI NO 70.0 0.0 0.0 Dome
ATL NYJ 66.0 83.0 17.0 Rain
IND CIN 44.0 58.0 12.0 Cloudy
SF PHI 65.0 81.0 11.0 Rain
OAK BUF 49.0 65.0 9.0 Cloudy
LAC NE 64.0 75.0 13.0 Showers
CAR TB 67.0 59.0 17.0 Partly Cloudy
HOU SEA 58.0 73.0 4.0 Cloudy
DAL WAS 58.0 66.0 6.0 Rain
PIT DET 70.0 0.0 0.0 Dome
DEN KC 55.0 40.0 12.0 Partly Cloudy
df2 = df2.melt(value_vars=['v','h'], \
id_vars=['temp','humd','wspd','cond'], value_name='team').set_index('team')
# temp humd wspd cond variable
# team
# MIA 60.0 41.0 12.0 Mostly Sunny v
# MIN 47.0 58.0 14.0 Cloudy v
# CHI 70.0 0.0 0.0 Dome v
# ATL 66.0 83.0 17.0 Rain v
# IND 44.0 58.0 12.0 Cloudy v
df1.set_index('team', inplace=True)
df1.update(df2[['temp', 'wspd', 'cond']])
# day temp ou wspd cond
# team
# CIN SUN 44.0 42.0 12.0 Cloudy
# KC MN 55.0 43.5 12.0 Partly Cloudy
# IND SUN 44.0 42.0 12.0 Cloudy
# CIN SUN 44.0 42.0 12.0 Cloudy
# SEA SUN 58.0 45.5 4.0 Cloudy