删除熊猫数据框中的未命名列[重复]
Posted
技术标签:
【中文标题】删除熊猫数据框中的未命名列[重复]【英文标题】:Remove Unnamed columns in pandas dataframe [duplicate] 【发布时间】:2017-10-14 11:34:40 【问题描述】:我有一个来自 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
我已经多次查看我的数据文件,但我在任何其他列中都没有额外的数据。阅读时我应该如何删除这个额外的列?谢谢
【问题讨论】:
你的第一列可能是索引col看到的相关:***.com/questions/36519086/… 我也遇到了同样的问题。我检查了我的数据文件.. 发现在标题行(第 0 行)的末尾有一个额外的分隔符。 【参考方案1】: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)
【讨论】:
【参考方案2】:首先,找到“未命名”的列,然后删除这些列。注意:您也应该将inplace = True
添加到.drop
参数中。
df.drop(df.columns[df.columns.str.contains('unnamed',case = False)],axis = 1, inplace = True)
【讨论】:
【参考方案3】:pandas.DataFrame.dropna
函数删除missing values(例如NaN
、NaT
)。
例如,以下代码将删除数据框中的所有列,其中该列的所有元素都丢失了。
df.dropna(how='all', axis='columns')
【讨论】:
点评来源: 欢迎来到 Stack Overflow!尝试对您的解决方案如何工作提供一个很好的描述。请参阅:How do I write a good answer?。谢谢【参考方案4】:批准的解决方案在我的情况下不起作用,所以我的解决方案如下:
''' 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)
希望对他人有所帮助。
【讨论】:
以上是关于删除熊猫数据框中的未命名列[重复]的主要内容,如果未能解决你的问题,请参考以下文章