【问题标题】:use integer as comment char as integer with read_csv使用整数作为注释 char 作为带有 read_csv 的整数
【发布时间】:2016-05-21 01:37:33
【问题描述】:

我的数据看起来像:

306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
66,1970,1,100,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
66,1970,1,100,

不,我想排除/跳过阅读行忽略所有以66开头的数据。

如何组装我的 pd.read_csv?

data = """
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
66,1970,1,100,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
306,1970,
66,1970,1,100,
"""

import pandas as pd
from io import StringIO

pd.read_csv(StringIO(data), header=None, dtype={1 : str },  comment='6',)

但这会在30之后全部跳过:

     0
0   30
1   30
2   30
3   30
4   30
5   30
6   30
7   30
8   30
9   30
10  30
11  30

【问题讨论】:

    标签: python csv pandas io


    【解决方案1】:

    首先加载数据框(并声明列)

    df = pd.read_csv(StringIO(data), names=[0,1,2,3] ,header=None,dtype={0 : str })
    

    第二步使用正则表达式删除以66开头的字符串

    df = df[~df[0].str.contains('^66')]
    df
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 2015-04-08
      • 2012-07-08
      • 2020-03-23
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      相关资源
      最近更新 更多