删除包含特定模式的行[Python / Pandas]

我是Python和Pandas的新手,我花了很多时间进行搜索,但未能找到解决我特定问题的答案.

我有一个数据框,其中前几行只是以’#’开头的注释,其后是包含行和列的普通数据框.我有数百个此类文本文件需要阅读和处理.例如:

‘#’等等

‘#’等等

‘#’等等

列1列2列3

a1 b1 c1

a2 b2 c2

等等

我想删除所有以“#”开头的行.有人可以告诉我如何在熊猫中做到这一点吗?

另外,我尝试使用以下代码读取文本文件

my_input=pd.read_table(filename, comment='#', header=80)

但是问题是每个文本文件标题行都不同.有没有一种方法可以概括并告诉Python我的标头位于以’#’开头的最后一行的下面?

解决方法:

更新至熊猫0.14.1或更高版本可让您正确跳过注释行.

较旧的版本会将这些行保留为NaN,可以使用.dropna()删除这些行,但会留下损坏的标头.

对于较旧版本的熊猫,可以使用“ skiprows”,前提是您知道注释了多少行.

在[3]中:

s = "# blah1\n# blah2\n# blah3\nCol1 Col2 Col3\na1 b1 c1\na2 b2 c2\n"
pd.read_table(StringIO(s), skiprows=3, sep=' ')

出[3]:

Col1    Col2    Col3
0   a1  b1  c1
1   a2  b2  c2

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...