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

这样

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

id:message:user 

1:hi:admin

2:im fine :):user1

第2行

我有线有两个分离器,这意味着4列,以便它抛出pandas.errors.ParserError: Error tokenizing data. C error: Expected

回答:

首先决定你想用坏线做什么?

如果你想跳过它们

,使用额外的参数(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

回答:

在您的示例中,额外的分隔符只能出现在中间列中。

所以,如果你读了输入行成一个字符串,就可以很容易地找到这两个分隔符:

  • 第一分离器是第一个“:”在字符串中
  • 第二隔板是最后的' :”在串

因此:

  • 第一隔离物S之前的字符串的任何部分HOULD转到第一列
  • 所述第一和最后一个分离器应该进入第二列(包括在该消息中的所有冒号)
  • 字符串的任何部分的最后分离器之后应该去之间的字符串的任何部分入到第三塔

(请注意,如果有多于一列可以包含分离这种方法是行不通的。)

以上是 如何跳过或忽略coulmn的数据时expcted coulmns较高然后头 的全部内容, 来源链接: utcz.com/qa/257826.html

回到顶部