删除pandas datafram中的未命名列

2024-04-26 12:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自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

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


Tags: csvreaddata数据文件nanpd末尾cold
3条回答
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

如果CSV文件中的第一列具有索引值,则可以执行以下操作:

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

^{}函数删除missing values(例如NaNNaT)。

例如,下面的代码将从数据框中删除任何列,其中该列的所有元素都将丢失。

df.dropna(how='all', axis='columns')

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

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

相关问题 更多 >