используйте pandas для разбора csv, результат неправильный. версия для панд 0.24.2 - PullRequest
0 голосов
/ 16 октября 2019

Я хочу проанализировать CSV, который не имеет заголовков и разделителя ('\ t'), результат неправильный. Все значения строки будут распознаны как первое поле, а остальные поля - Nan

csv_df=pd.read_csv(
    "./123",
    sep="\t",
    names=["month", "number", "age", "name", "column1"],
    quotechar='"',
    doublequote=True,
    skip_blank_lines=True,
    encoding="utf-8"
)     
print csv_df
the csv values is 

1  'Pete Houston'  'Software Engineer'  92

2     'John Wick'           'Assassin'  95

3   'Bruce Wayne'             'Batman'  99

4    'Clark Kent'           'Superman'  95

the parse result is 

                                          month number age  name
0  1  'Pete Houston'  'Software Engineer'  92     NaN  NaN   NaN

1  2     'John Wick'           'Assassin'  95     NaN  NaN   NaN

2  3   'Bruce Wayne'             'Batman'  99     NaN  NaN   NaN

3  4    'Clark Kent'           'Superman'  95     NaN  NaN   NaN

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Следующий код прекрасно работает для вашего примера csv:

pd.read_csv("filename.csv", sep="\s+", quotechar="'", header=None,
    names=["a", "b", "c", "d"])

Вместо использования "\t" в качестве разделителя, лучше использовать "\s+", что более универсально. Кроме того, есть беспорядок с вашими параметрами цитаты.

0 голосов
/ 16 октября 2019

Потому что ваш CSV-файл не содержит / t (вкладка) между именами.

Я просто заменил пробелы в каждой строке на вкладки и запустил ваш код, который дал мне следующий результат:

   month          number                  age  name  column1
0      1  'Pete Houston'  'Software Engineer'    92      NaN
1      2     'John Wick'           'Assassin'    95      NaN
2      3   'Bruce Wayne'             'Batman'    99      NaN
3      4    'Clark Kent'           'Superman'    95      NaN

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