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
你可以使用应用函数并为你的逻辑定义一个函数。
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
让我们这样做 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