在互联网上搜索了很多,以了解这个问题。尝试了大部分但是徒劳无功。我正在读取一个以制表符分隔的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])
答案 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")