我想遍历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
答案 0 :(得分:1)
不建议iterrows()
。您可以改用itertuples()
。
for row in df.itertuples():
try:
df.at[row.Index, 't_age'] = row.t_age * row.height
except SomeException:
df.at[row.Index, 'xfactor'] = 1
答案 1 :(得分:1)
如果我没记错的话,那该怎么办?
df['new_column'] = df['t_age'] * df['height']