删除pandas dataframe

时间:2017-05-15 15:40:41

标签: 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

我已经看过不同时间的数据文件,但我在其他任何列中都没有额外的数据。如何在阅读时删除这个额外的列?感谢

4 个答案:

答案 0 :(得分:64)

In [162]: df.loc[:, ~df.columns.str.contains('^Unnamed')]
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

如果第一列有索引值,那么您可以改为:

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

答案 1 :(得分:14)

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

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

答案 2 :(得分:3)

pandas.DataFrame.dropna函数将删除missing values(例如//plugins/auth.js import firebase from '~/plugins/firebase' function auth () { return new Promise((resolve, reject) => { firebase.auth().onAuthStateChanged((user) => { resolve(user || false) }) }) } export default auth NaN)。

例如,以下代码将从数据框中删除所有缺少该列所有元素的列。

NaT

答案 3 :(得分:1)

在我的情况下,批准的解决方案不起作用,所以我的解决方案是以下解决方案:

    ''' The column name in the example case is "Unnamed: 7"
 but it works with any other name ("Unnamed: 0" for example). '''

        df.rename({"Unnamed: 7":"a"}, axis="columns", inplace=True)

        # Then, drop the column as usual.

        df.drop(["a"], axis=1, inplace=True)

希望对别人有帮助。