如何跳过或忽略coulmn的数据时expcted coulmns较高然后头

weixin_38048154 2019-09-12 03:33:24

这样 id:message:user 1:hi:admin 2:im fine :):user1 第2行 我有线有两个分离器,这意味着4列,以便它抛出pandas.errors.ParserError: Error tokenizing data. C error: Expected






...全文
39 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38056601 2019-09-12
  • 打赏
  • 举报
回复

首先决定你想用坏线做什么?如果你想跳过它们 ,使用额外的参数(S),而使用熊猫读文件: error_bad_lines=False 代码变为: >>> df = pd.read_csv("test_data_file.csv", delimiter=":", warn_bad_lines=False, error_bad_lines=False) ,如果你不想砸“异常”的数据(通常情况),基于分离器的数量每行读出的数据作为串&过程的行如下: >>> df = pd.read_csv("/home/kiran/test_data_2.csv") >>> df["id"]= df['id:message:user'].apply(lambda x: x.split(":")[0]) >>> df["message"]= df['id:message:user'].apply(lambda x: x.split(":")[1] if (len(x.split(":"))==3) else x.split(":")[1]+":"+x.split(":")[2]) >>> df["user"]= df['id:message:user'].apply(lambda x: x.split(":")[-1]) >>> df.drop('id:message:user', 1, inplace=True) >>> df.head(5) id message user 0 1 hi admin 1 2 im fine :) user1
weixin_38067871 2019-09-12
  • 打赏
  • 举报
回复

在您的示例中,额外的分隔符只能出现在中间列中。 所以,如果你读了输入行成一个字符串,就可以很容易地找到这两个分隔符: 第一分离器是第一个“:”在字符串中 第二隔板是最后的' :”在串 因此: 第一隔离物S之前的字符串的任何部分HOULD转到第一列 所述第一和最后一个分离器应该进入第二列(包括在该消息中的所有冒号) 字符串的任何部分的最后分离器之后应该去之间的字符串的任何部分入到第三塔 (请注意,如果有多于一列可以包含分离这种方法是行不通的。)

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧