除了pandas数据帧中的前1列之外,无法选择任何其他列

时间:2018-01-14 14:42:39

标签: python pandas

在互联网上搜索了很多,以了解这个问题。尝试了大部分但是徒劳无功。我正在读取一个以制表符分隔的tsv文件。

import pandas as pd
df = pd.read_csv('abc.tsv',delimiter="\t", engine="python", encoding="UTF-8")

当我打印列时,我得到了这个:

Index(['date', '​time', '​user_id', '​url', '​IP'], dtype='object')

尝试访问数据框时,我只能按名称选择第一列,而其余的则给出KeyError:

print(df.loc[:, "time"])

KeyError: 'the label [time] is not in the [columns]'

升级后的大熊猫:

Successfully installed numpy-1.14.0 pandas-0.22.0 python-dateutil-2.6.1 pytz-2017.3 six-1.11.0

任何帮助都将受到高度赞赏

编辑:

我可以使用iloc访问所有列

print(df.iloc[:, 1])

1 个答案:

答案 0 :(得分:0)

回答评论:

如果返回:

print (df.columns.tolist())

['date', '\u200btime', '\u200buser_id', '\u200burl', '\u200bIP']

然后使用strip删除尾随空格:

df.columns = df.columns.str.strip()

在这种特殊情况下,它是:

df.columns = df.columns.str.strip("\u200b")