Может кто-то сказать, что неправильно читать CSV-файл на пандах - PullRequest
0 голосов
/ 07 апреля 2019

Я преобразую данные json в файлы csv с помощью скрипта parser.py и подсчитываю их в другом скрипте analyzer.py. Моя проблема в том, что выходные CSV-файлы правильные, но когда я пытаюсь прочитать файлы в analyzer.py, строки разбиваются на многие другие в кадре данных, а новые строки не следуют порядку столбцов и не задают значения. Извините за плохой английский, мне так грустно об этом: (

столбцы CSV:

 status_id, created_at, user_id, user_screen_name, status_text, hashtags,
 user_metions, url, status_fav_count, status_rewtweet_count, is_retweet, 
 ori_status_id, ori_creted_at, ori_user_id, ori_user_screen_name, 
 ori_text, ori_hashtags, ori_user_metions, ori_urls, ori_fav_count,
 ori_rewtweet_count, is_quoted, quoted_status_id, quoted_status_creted_at,
 quoted_status_user_id, quoted_status_screen_name, quoted_text,
 quoted_hashtags, quoted_user_metions, quoted_urls, quoted_fav_count, 
 quoted_rewtweet_count

Пример:

1106517910707679235,2019-03-15 11: 30: 02,19888170, Cout_ma, RT @Marish_: kkkkkkkkkkkkkkkkkkkkkk,, 0,0, True, 110651 6443468845061, пт мар 15 11:24:12 +0000 2019,61990620, Marish_, kkkkkkkkkkkkkkkkkkkkkk ,,,, 5,6, True, 1106513884314324992, пятница, 15 марта, 11:14:02 +0000 2019,14594813, folha, Ruralistas reclamam de vi ~ C © s анти-Китай нет губернатор Bolsonaro ,,, 160,34

вывод при выполнении теста на чтение:

Панды (Index = 39498, status_id = 'URL HERE', созданный_at = nan, user_id = nan, user_screen_name = 'URL HERE', status_text = '0', hashtags = '0', user_metions = 'False', url = nan, status_fav_count = nan, status_rewtweet_count = nan, is_retweet = nan, ori_status_id = nan, ori_creted_at = nan, ori_user_id = nan, ori_user_screen_name = nan, ori_text = nan, ori_hashtags = nan, ori_user_metions = 'False', ori_urls = nan, ori_fav_count = nan, ori_rewtweet_count = nan, is_quoted = nan, quoted_status_id = nan, quoted_status_creted_at = nan, quoted_status_user_id = nan, quoted_status_screen_name = nan, quoted_text = nan, quoted_hashtags = nan, quoted_user_metions = nan, quoted_urls = nan, quoted_fav_count = nan, quoted_rewtweet_count = nan)

написать код csv:

    df = pandas.DataFrame(to_csv,columns=['status_id',
                               'created_at',
                               'user_id',
                               'user_screen_name',
                                   .
                                   .
                                   .
                                    ])
    df = df.sort_values(by='status_id')
    df.to_csv(to + index + '_' + start.strftime('%Y-%m-%d %H:%M:%S') + '.csv',index=False,encoding='utf8')

читать код CSV:

 data = pd.read_csv(path + '/' + name) # var name contains the csv file name
for i in data.itertuples():
   print(i)

1 Ответ

1 голос
/ 07 апреля 2019

Убедитесь, что текст твита или другие поля не содержат разделитель CSV, который вы используете (запятую в данном случае), иначе при чтении строк не сможете определить, предназначен ли разделитель для разделения или это просто символ в оригинальный текст. Если строки заключены в кавычки, проблема не должна сохраняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...