如何在python数据框架中根据一定的条件,将某一列的每个单元格的值增加一个。

问题描述 投票:0回答:2
In [235]: df
Out[235]:
   a  b  c
0  2  2  6
1  1  0  3
2  2  2  7
3  0  2  0
4  0  1  8

我想在数据框中增加列'c'每个单元格的值,条件是如果列'c'单元格的值大于5,那么列'c'单元格的值就变成零eg cell(3,1)=6,那么6>5,cell(3,1)就变成7。如果列'c'每个单元格的值小于5,那么列'c'单元格的值就变成零eg cell(3,1)=6,那么6>5,cell(3,1)就变成7。而cell(3,2)=3,则3<5,cell(3,2)变为0,...我希望你能理解输出这样的东西。

In [237]: df
Out[237]:
   a  b  c
0  2  2  7
1  1  0  0
2  2  2  8
3  0  2  0
4  0  1  9
python python-3.x dataframe conditional-statements multiple-columns
2个回答
1
投票

你可以使用应用函数并为你的逻辑定义一个函数。

In [8]: df = pd.DataFrame({'a': [2,1,2,0,0], 'b':[2,0,2,2,1],'c':[6,3,7,0,8]})

In [9]: df
Out[9]:
   a  b  c
0  2  2  6
1  1  0  3
2  2  2  7
3  0  2  0
4  0  1  8

In [10]: df['c'] = df['c'].apply(lambda x: x+1 if x>5 else 0)

In [11]: df
Out[11]:
   a  b  c
0  2  2  7
1  1  0  0
2  2  2  8
3  0  2  0
4  0  1  9

2
投票

让我们这样做 numpy

import numpy as np
df['c']=np.where(df.c>5,df.c+1,0)
df
   a  b  c
0  2  2  7
1  1  0  0
2  2  2  8
3  0  2  0
4  0  1  9
© www.soinside.com 2019 - 2024. All rights reserved.