所以这是交易,我有这个数据框,让我们将其命名为 lovely_df: foo? fah? boo? Nice Numbers0 foo fah boo 101 meh fah boo 202 meh fah boo 303 foo fah boo 404 meh fah boo 50试图这样做:lovely_df.loc[lovely_df['foo?'] == 'meh',:]['Nice Numbers'].add(1)它返回给我: Nice Numbers1 212 314 51如果将其保存到 lovely_df 中就可以了,但它没有,所以我尝试了:lovely_df.loc[lovely_df['foo?'] == 'meh',:]['Nice Numbers'] = lovely_df.loc[lovely_df['foo?'] == 'meh',:]['Nice Numbers'].add(1)它确实有效,但它给了我:<input>:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead所以就是这样,我只是想在几行的单列中添加一个特定的数字,而不会让 Python 对我哭泣。多谢你们!
1 回答

哆啦的时光机
TA贡献1779条经验 获得超6个赞
您可以numpy.where根据自己的情况使用
lovely_df['new_col'] = np.where(lovely_df['foo?'] == 'meh',
lovely_df['Nice Numbers'].add(1),
lovely_df['Nice Numbers'])
print(lovely_df)
foo? fah? boo? Nice Numbers new_col
0 foo fah boo 10 10
1 meh fah boo 20 21
2 meh fah boo 30 31
3 foo fah boo 40 40
4 meh fah boo 50 51
添加回答
举报
0/150
提交
取消