Python Чтение файлов и добавление в фрейм данных - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь прочитать несколько файлов в папке. У меня есть около 100 файлов. Я использую приведенный ниже код, чтобы прочитать файл и добавить его к фрейму данных. Кажется, есть проблема с индексом. После создания фрейма данных столбцы меняются местами. Например:

Файл 1 добавляется в формате ID, ИМЯ, АДРЕС, КООРДИНАТЫ

Файл 2 добавляется в формате ИМЯ, КООРДИНАТЫ, АДРЕС, ИД

Это приводит к тому, что значения находятся в неправильных столбцах.

Код:

path=r"C:\Notebooks\temp"
filenames = glob.glob(path+"/*.csv")
dfs=[]

for file in range(len(filenames)):
    data_read=pd.read_csv(filenames[file], header=0)
    dfs.append(data_read)
    big_frame=pd.concat(dfs)

Есть ли лучший способ для чтения файлов CSV и добавления к фрейму данных?

1 Ответ

0 голосов
/ 13 апреля 2020

Попробуйте стереть последнюю строку, так как она бесполезна, и сделайте dfs не списком, а пустым фреймом данных.

dfs = pd.DataFrame(data={'ID' :str(0), 'NAME':str(0), 'ADDRESS':0, 'COORDINATES':str(0)}]

Затем добавьте все остальные файлы, как вы, и в конце вы можете удалить первое наблюдение, поскольку это просто «инициализатор».

Что касается проблемы с именем столбцов, попробуйте следующее:

column_names = ["ID", "NAME", "ADDRESS", "COORDINATES"]

for file in range(len(filenames)):
    data_read=pd.read_csv(filenames[file], header=0).reindex(columns=column_names)
    dfs.append(data_read)

Соберите две части вместе и вы получите окончательный код :

path=r"C:\Notebooks\temp"
filenames = glob.glob(path+"/*.csv")
dfs = pd.DataFrame(data={'ID' :str(0), 'NAME':str(0), 'ADDRESS':0, 'COORDINATES':str(0)}]
column_names = ["ID", "NAME", "ADDRESS", "COORDINATES"]

    for file in range(len(filenames)):
        data_read=pd.read_csv(filenames[file], header=0).reindex(columns=column_names)
        dfs.append(data_read)

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