摆脱没有标题的列

时间:2017-07-15 22:56:09

标签: python csv pandas

我正在尝试读取包含没有标题的列的CSV文件。目前,我的解决方案是

df = pd.read_csv("test.csv")
df = df[[col for col in df.columns if 'Unnamed' not in col]]

这似乎有点hacky,如果文件包含其中包含“未命名”字样的列,则会失败。有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

read_csv函数的usecols参数接受可调用函数作为输入。如果为不需要的列标题提供评估为False的函数,则会删除这些列。

func = lambda x: not x.startswith('Unnamed: ')
df = pd.read_csv('test.csv', usecols=func)

我想这个解决方案与原来的解决方案并没有根本的不同。

答案 1 :(得分:1)

也许您可以先重命名这些列?

df = pd.read_csv("test.csv")
df.columns = df.columns.str.replace('^Unnamed:.*', '')    
df[[col for col in df.columns if col]]

仍然非常hacky,但至少这只取代了以"未命名:"开头的字符串。与''在过滤它们之前。