加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将Pandas Dataframe行中的所有值相乘

发布时间:2020-12-20 12:12:32 所属栏目:Python 来源:网络整理
导读:这基本上是数据帧: col1 col2 col3 labelrow1 1 0 1 1row2 0 0 0 1row3 1 1 1 0row4 1 2 1 0 我基本上需要它遍历每一行,如果label = 0,则将行中的所有值乘以-1. 我尝试了很多不同的方法,包括: df.ix[3] = df.ix[3].multiply(-1) 哪个回报: SettingWithCop
这基本上是数据帧:

col1    col2    col3    label
row1   1       0       1        1
row2   0       0       0        1
row3   1       1       1        0
row4   1       2       1        0

我基本上需要它遍历每一行,如果label = 0,则将行中的所有值乘以-1.

我尝试了很多不同的方法,包括:

df.ix[3] = df.ix[3].multiply(-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

我也尝试删除行和替换,这不起作用,因为索引更改.

解决方法

或者,您可以运行行方式操作:

df = df.apply(lambda row: row*-1 if row['label'] == 0 else row,axis=1)

print(df)    
#       col1  col2  col3  label
# row1     1     0     1      1
# row2     0     0     0      1
# row3    -1    -1    -1      0
# row4    -1    -2    -1      0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读