python - 删除 Pandas 数据框中的未命名列

标签 python pandas dataframe

我有一个来自 A-G 列的数据文件,如下所示,但是当我使用 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

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

最佳答案

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)

关于python - 删除 Pandas 数据框中的未命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983622/

相关文章:

python - 数据帧到 np.array - IndexError : tuple index out of range

r - row.names() 和 attributes$row.names 有什么区别?

python - 在python和空字符串中排序

python - 重写discord.py |我怎样才能把它变成一个整数?

python - 如何在单行 'for' 循环中减少以下代码

python - 平滑分类输出

python - 无法在获取请求中使用 json 参数获得所需的响应

python - 用矢量化方法替换 python for 循环以丢弃丢失的数据

python - Pandas 合并而不复制列

python - 搜索和更新 Pandas 数据框中每一行值的最快方法