我正在尝试找到最大值并将其放在每行的一列中。根据下面的内容,有一些字符串,NaN和整数的分散。
我想由于数据类型的混合,只运行max函数不起作用。
df['max']=df[['team', 'so', 'ibb', 'hpb', 'sh', 'gidp']].max(axis=1)
df2 so ibb hbp sh sf gidp
year team
2008 DET 176.0 3.0 10.0 4.0 8.0 28.0
212.0 3.0 9.0 16.0 6.0 17.0 NaN
141.0 8.0 9.0 3.0 8.0 29.0 LAN
310.0 24 NYN 23.0 18.0 15.0 48.0
188.0 51.0 8 SFN 16.0 6.0 41.0
140.0 NaN 5.0 NaN 8.0 TEX 16.0
TOR 265.0 16.0 12.0 4.0 16.0 38.0
答案 0 :(得分:1)
如果想要最大数值,请先转换to_numeric
:
df['max'] = df.apply(lambda x: pd.to_numeric(x, errors='coerce')).max(axis=1)
print (df)
so ibb hbp sh sf gidp max
year team
2008 DET 176.0 3.0 10.0 4.0 8.0 28.0 176.0
212.0 3.0 9.0 16.0 6.0 17.0 NaN NaN 17.0
141.0 8.0 9.0 3.0 8.0 29.0 LAN NaN 29.0
310.0 24 NYN 23.0 18.0 15.0 48.0 NaN 48.0
188.0 51.0 8 SFN 16.0 6.0 41.0 NaN 41.0
140.0 NaN 5.0 NaN 8.0 TEX 16.0 NaN 16.0
TOR 265.0 16.0 12.0 4.0 16.0 38.0 NaN 38.0