Обработка символов новой строки в панде - PullRequest
0 голосов
/ 15 января 2019

Когда я группирую по столбцу, я получаю неожиданные значения из другого поля.

Вот пример данных:

https://gist.github.com/shantanuo/c8272978575b4a403596ae87f10074c7

И вот как я импортирую это:

import pandas as pd
df = pd.read_csv('s3://todel162/bigd/test.csv', header=None, escapechar='\\')
df.columns=['id', 'client', 'code', 'm_text', 'atpt', 'date']
df.groupby('id')['id'].count()

И вывод:

id
1234                                1
3456                                1
5432                              118
report it as soon as possible"      1
Name: id, dtype: int64

В основном весь текст в 2 двойных кавычках должен быть частью одной ячейки. Например,

"this is line one
and some text on line two"

Есть ли способ правильно импортировать подобные данные (без изменения исходного файла)?

1 Ответ

0 голосов
/ 15 января 2019

В этом конкретном случае вы можете использовать параметр skipinitialspace

df = pd.read_csv('Book1.csv', header=None, skipinitialspace=True, escapechar='\\')
df.loc[115:]

        0          1      2  \
115  5432  some_code  case0   
116  5432  some_code  case0   
117  5432  some_code  case0   
118  1234  some_code  case1   
119  3456   new_code  case2   

                                                     3  4               5  
115                                         this is ok  6  20181201031613  
116                                         this is ok  6  20181201031613  
117                                         this is ok  6  20181201031613  
118  welcome to this new bug and \nreport it as soo...  3  20181201031613  
119  this is another newline \nfollowed by a back s...  4  20181201031613 

Если вы хотите удалить \n в строке, просто df[3] = df[3].str.replace('\n', '')

...