删除熊猫数据框中的未命名列

新手上路,请多包涵

我有一个来自 AG 列的数据文件,如下所示,但是当我使用 pd.read_csv('data.csv') 阅读它时,它会无缘无故地在末尾打印一个额外的 unnamed 列。

 colA    ColB    colC    colD    colE    colF    colG    Unnamed: 7
44      45      26      26      40      26      46        NaN
47      16      38      47      48      22      37        NaN
19      28      36      18      40      18      46        NaN
50      14      12      33      12      44      23        NaN
39      47      16      42      33      48      38        NaN

我多次查看我的数据文件,但我在任何其他列中都没有额外的数据。我应该如何在阅读时删除这个额外的列?谢谢

原文由 muazfaiz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 361
2 个回答
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]

In [162]: df
Out[162]:
   colA  ColB  colC  colD  colE  colF  colG
0    44    45    26    26    40    26    46
1    47    16    38    47    48    22    37
2    19    28    36    18    40    18    46
3    50    14    12    33    12    44    23
4    39    47    16    42    33    48    38


注意: 通常只有一个未命名的列 Unnamed: 0 ,这是 CSV 文件中的第一列。这是以下步骤的结果:

  1. 使用参数 index=True 将 DataFrame 保存到 CSV 文件中,这是 默认 行为
  2. 我们使用 pd.read_csv() 将这个 CSV 文件读入 DataFrame ,而没有明确指定 index_col=0 (默认值: index_col=None

删除此列的最简单方法是指定参数 pd.read_csv(..., index_col=0)

 df = pd.read_csv('data.csv', index_col=0)

原文由 MaxU - stop genocide of UA 发布,翻译遵循 CC BY-SA 4.0 许可协议

首先,找到具有“未命名”的列,然后删除这些列。注意:您还应该将 inplace = True 添加到 .drop 参数。

 df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1, inplace = True)

原文由 Adil Warsi 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题