如何使用 python 跳过用作列标题的文本

How to skip text being used as column heading using python

我正在使用 Pandas 在 Python 中导入网络日志文本文件。 Python 正在阅读 header,但是已将文本 "Fields:" 用作 header,然后在末尾添加了另一列空白(NaN)。如何停止将此文本用作列标题?

这是我的代码:

arr = pd.read_table("path", skiprows=3, delim_whitespace=True,      na_values=True)

这是文件的开头:

软件:Microsoft Internet Information Services 7.5

版本:1.0

日期:2014-08-0100:00:25

字段:日期时间

2014-08-0100:00:25...

结果是 'Fields' 被用作列标题,并且正在为列 'time' 创建一个充满 NaN 值的列。

我想你可能想要 skiprows = 4header = None

你可以调用 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)

如果您已经知道列的名称(例如 datetime),那就更简单了:

df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time'])