使用Pandas读取CSV文件:sep操作

344 篇文章 10 订阅
我有一个csv文件,我想用python panda读取它。标题和行如下所示:

 A           ^B^C^D^E  ^F          ^G           ^H^I^J^K^L^M^N
很明显,分隔符是^,有时有一些奇怪的空格。我怎样才能把这个文件读得很好?

我正在使用以下命令读取csv文件:

df = pd.read_csv('input.csv', sep='^')
你不能提供regex作为分隔符吗?

sep = re.compile(r'[\^\s]+')
使用regex\s*\^这意味着0个或多个空格和^,您必须在此处指定python引擎以避免出现有关regex支持的警告:

In [152]:

t="""A           ^B^C^D^E  ^F          ^G           ^H^I^J^K^L^M^N"""
df= pd.read_csv(io.StringIO(t), sep='\s*\^', engine='python')
df.columns
Out[152]:
Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'], dtype='object')
分隔符可以是正则表达式,因此请尝试以下操作:

df = pd.read_csv('input.csv', sep="[ ^]+")
正则表达式应在一行中使用任意数量的空格或插入符号(^)作为单个分隔符。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值