Чтение текстового файла с многоуровневыми столбцами, Python 3,6 - PullRequest
1 голос
/ 17 апреля 2020

У меня есть содержимое ниже в текстовом файле без заголовка,

"Africa","10000"
"Brazil","5432"
"India","7687"

"US","87686","Import"
"Itally","2322","Export"

Мне нужно импортировать вышеуказанные данные в 3 поля Dataframe, я пробовал ниже сценарий, но не удается

Data = pd.read_csv(FilePath, header=None, usecols=['One', 'Two', 'Three'], encoding='ISO-8859-1', dtype=object)

ValueError: Usecols do not match columns, columns expected but not found: ['Two', 'Three', 'One']

1 Ответ

2 голосов
/ 17 апреля 2020

Используйте параметр names вместо usecols в read_csv для указания имен новых столбцов:

Data = pd.read_csv(FilePath, 
                   header=None, 
                   names=['One', 'Two', 'Three'], 
                   encoding='ISO-8859-1', 
                   dtype=object)

Тест:

import pandas as pd
from io import StringIO


temp='''"Africa","10000"
"Brazil","5432"
"India","7687"

"US","87686","Import"
"Itally","2322","Export"'''
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
Data = pd.read_csv(StringIO(temp), 
                   header=None, 
                   names=['One', 'Two', 'Three'], 
                   encoding='ISO-8859-1', 
                   dtype=object)
print (Data)
      One    Two   Three
0  Africa  10000     NaN
1  Brazil   5432     NaN
2   India   7687     NaN
3      US  87686  Import
4  Itally   2322  Export
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...