猿问

迭代 df 并设置另一个列值而不是 iterrows 的更好方法

我想遍历 df 行并基于两列为其中之一分配一个新值或向新列添加新值。我可以用 iterrows() 做到这一点,但我读过它不是推荐的方法。


数据如下所示:


name   xfactor    t_age    height

Jack    NaN        24      180    

John    NaN        26      178    

我使用此代码来完成任务:


for i, row in df.iterrows():

    try:

        df.at[i, 't_age'] = row['t_age'] * row['height']

    except SomeException:

        df.at[i, 'xfactor'] = 1

预期输出可能如下所示:


name   xfactor    t_age    height

Jack    NaN       4320     180    

John     1         26      178    


动漫人物
浏览 177回答 2
2回答

蓝山帝景

如果我没有错,那这又如何呢?df['new_column'] = df['t_age'] * df['height']
随时随地看视频慕课网APP

相关分类

Python
我要回答