【问题标题】:How to drop multiple columns on pandas data frame如何在熊猫数据框中删除多列
【发布时间】:2017-07-16 12:17:55
【问题描述】:

大家好,我一直在尝试使用这样的 drop 命令在 pandas 上删除 2 列 Excel 数据框

energy = energy.drop(energy.columns[[0 , 1]], axis= 1 )

但是,我无法避开这些列。最后我感觉到我应该删除的列是我机器上的多级索引。最后我试着像这样从它中删除一个级别

energy.index = energy.index.droplevel(2)

但我仍然无法设法避免这些列。

我已附上我作品的屏幕副本enter image description here

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以像这样子集数据框,而不是删除列:

In [3]: mydf = pd.DataFrame({"A":[1,2,3,4],"B":[4,3,2,1], "C":[3,4,5,3],"D":[6,4,3,2]})
In [4]: mydf
Out[4]:
   A  B  C  D
0  1  4  3  6
1  2  3  4  4
2  3  2  5  3
3  4  1  3  2
In [5]: mydf[mydf.columns[2:]]
Out[5]:
   C  D
0  3  6
1  4  4
2  5  3
3  3  2

例如,如果您尝试删除前 2 列,这将起作用。它通过使用df.columns 创建一个列表来工作,然后您将其子集并应用于您的数据框。然后,您可能希望将新数据框设置为变量。 如果您要删除的列不相邻,您可以遍历要删除的列列表:

In [7]: mydf1 = mydf.copy()
In [8]: for col in ["A","D"]:
   ...:     mydf1 = mydf1.drop(col,axis=1)

In [9]: mydf1
Out[9]:
   B  C
0  4  3
1  3  4
2  2  5
3  1  3

【讨论】:

    【解决方案2】:

    尝试简单地重命名列

    说你有

    In: df.columns 
    
    Out: MultiIndex(levels=[['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR 
         VEHICLE', 'TMAX', 'TMIN'], ['count', 'mean']],
         labels=[[0, 1, 2, 3, 4], [0, 0, 0, 1, 1]])
    

    然后

    In: df.columns = ['Burglary', 'Grand Larceny', 'Grand Larceny on Motor Vehicle', 
        'TMAX', 'TMIN']
    

    然后瞧

    In: df.columns
    
    Out: Index(['BURGLARY', 'GRAND LARCENY', 'GRAND LARCENY OF MOTOR VEHICLE', 
         'TMAX',
         'TMIN'],
         dtype='object')
    

    【讨论】:

      【解决方案3】:

      如果你真的想删除列,你可以使用del:

      >>> df = pd.DataFrame({'A':range(3),'B':list('abc'), 'C':range(3,6), 'D':list('gde')})
      >>> for x in ['A', 'B']:
      ...     del df[x]
      ... 
      >>> df
         C  D
      0  3  g
      1  4  d
      2  5  e
      

      【讨论】:

        【解决方案4】:

        这可能会有所帮助

        energy.drop(energy.columns[[0,1]] , axis=1, inplace=True)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-03
          • 2015-03-18
          • 2019-06-28
          • 2021-09-10
          相关资源
          最近更新 更多