【问题标题】:How to increase a particular column each cell value by one, based on a certain condition in python dataframe如何根据python数据框中的特定条件将每个单元格值增加一个特定列
【发布时间】:2020-08-20 20:21:42
【问题描述】:
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”单元格值大于 5 的条件将数据框中的“c”列每个单元格值增加一。如果列“c”每个单元格值小于 5,则列“c”单元格值变为零 例如 cell(3,1)=6, 然后 6>5, cell(3,1) 变为 7。并且 cell(3,2)=3 然后 3

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 pandas dataframe conditional-statements


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2020-02-24
        • 2017-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多