如何使用 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 = 4
和 header = 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)
如果您已经知道列的名称(例如 date
和 time
),那就更简单了:
df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time'])
我正在使用 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 = 4
和 header = 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)
如果您已经知道列的名称(例如 date
和 time
),那就更简单了:
df = pd.read_table('path', sep=' ', skiprows=4, names = ['date', 'time'])