【问题标题】:How to replace last n values of a row with zero如何用零替换一行的最后 n 个值
【发布时间】:2019-11-08 05:20:23
【问题描述】:

我想用零替换其中一列的最后 2 个值。我了解 NaN 值,我可以使用 .fillna(0),但我也想替换最后一列的第 6 行值。

Weight  Name    Age d_id_max    
0   45  Sam     14  2   
1   88  Andrea  25  1   
2   56  Alex    55  1   
3   15  Robin   8   3   
4   71  Kia     21  3   
5   44  Sia     43  2   
6   54  Ryan    45  1   
7   34  Dimi    65  NaN 

df.drop(df.tail(2).index,inplace=True)

 Weight Name    Age  d_id_max   
0   45  Sam     14  2   
1   88  Andrea  25  1   
2   56  Alex    55  1   
3   15  Robin   8   3   
4   71  Kia     21  3   
5   44  Sia     43  2   
6   54  Ryan    45  0
7   34  Dimi    65  0

【问题讨论】:

    标签: pandas


    【解决方案1】:

    在 pandas 0.20.0(很长一段时间)之前,它是 ix 的工作,但 now it is deprecated。所以你可以使用:

    DataFrame.iloc 用于获取最后一行,Index.get_loc 用于列的位置d_id_max

    df.iloc[-2:, df.columns.get_loc('d_id_max')] = 0
    print (df)
       Weight    Name  Age  d_id_max
    0      45     Sam   14       2.0
    1      88  Andrea   25       1.0
    2      56    Alex   55       1.0
    3      15   Robin    8       3.0
    4      71     Kia   21       3.0
    5      44     Sia   43       2.0
    6      54    Ryan   45       0.0
    7      34    Dimi   65       0.0
    

    或带有索引值的DataFrame.loc

    df.loc[df.index[-2:], 'd_id_max'] = 0
    

    【讨论】:

      【解决方案2】:

      试试.ilocget_loc

      df.iloc[[-1,-2], df.columns.get_loc('d_id_max')] = 0
      
      Out[232]:
         Weight    Name  Age  d_id_max
      0      45     Sam   14       2.0
      1      88  Andrea   25       1.0
      2      56    Alex   55       1.0
      3      15   Robin    8       3.0
      4      71     Kia   21       3.0
      5      44     Sia   43       2.0
      6      54    Ryan   45       0.0
      7      34    Dimi   65       0.0
      

      【讨论】:

        【解决方案3】:

        你可以使用:

        df['d_id_max'].iloc[-2:] = 0
        
        
        
            Weight    Name  Age  d_id_max
        0      45     Sam   14       2.0
        1      88  Andrea   25       1.0
        2      56    Alex   55       1.0
        3      15   Robin    8       3.0
        4      71     Kia   21       3.0
        5      44     Sia   43       2.0
        6      54    Ryan   45       0.0
        7      34    Dimi   65       0.0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-15
          • 2021-05-05
          • 2021-03-18
          • 1970-01-01
          • 1970-01-01
          • 2020-05-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多