我使用Pandas在Python中导入Web日志文本文件。 Python正在读取标题,但是使用了文本“Fields:”作为标题,然后在最后添加了另一列空格(NaN)。如何阻止将此文本用作列标题?
这是我的代码:
arr = pd.read_table("path", skiprows=3, delim_whitespace=True, na_values=True)
这是文件的开头:
软件:Microsoft Internet Information Services 7.5
版本:1.0
日期:2014-08-01 00:00:25
字段:日期时间
2014-08-01 00:00:25 ......
结果是'Fields'被用作列标题,并且正在为列'time'创建一个充满NaN值的列。
答案 0 :(得分:1)
我认为您可能需要skiprows = 4
和header = None
答案 1 :(得分:1)
您可以两次拨打read_table
。
# reads the forth line into 1x1 df being a string,
# then splits it and skips the first field:
col_names = pd.read_table('path', skiprows=3, nrows=1, header=None).iloc[0,0].split()[1:]
# reads the actual data:
df = pd.read_table('path', sep=' ', skiprows=4, names=col_names)
如果您已经知道列的名称(例如date
和time
),那么它甚至更简单:
df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time'])