Как объединить / записать два pandas кадра данных в один файл - PullRequest
0 голосов
/ 29 марта 2020

Я читаю в CSV-файле на pandas фрейм данных для научного c анализа / обработки. Я создаю второй «идентичный» фрейм данных. Я делаю анализ / обработку на втором кадре данных. Я хотел бы вернуть данные в CSV-файл с двумя кадрами «бок о бок», чтобы можно было сравнить исходные данные с обработанными данными.

Входной код из файла:

reader = pd.read_csv(Filename1, sep = none, engine = 'python')
df = pd.DataFrame(reader)
dg = pd.DataFrame(reader)

Я выполняю обработку в dg

Теперь я хочу записать 'df' и 'dg' (каждый кадр, состоящий из одинакового количества столбцов) в файл CSV, чтобы каждая строка файла CSV выглядела как как это:

(df Col1), (df Col2), (df Col3), (dg Col1), (dg Col2), (dg Col3)

Как создать новый Кадр данных, который соединяет df и dg вместе «бок о бок»?

Ожидается запись результирующего кадра данных во второй файл csv (Filename2) с помощью следующего оператора (предполагая, что di - это два кадра данных, соединенных вместе).

di.head(EndFile).to_csv(Filename2, sep = '\t', index = False, header = False)

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Вы можете использовать pandas.DataFrame.merge() так:

di = pd.merge(df, dg, left_index=True, right_index=True, suffixes=('_df', '_dg'))
0 голосов
/ 29 марта 2020

Вы можете попробовать простое объединение, чем сохранить в CSV.

import pandas as pd
dict1 = {'a':[2,3,4],'b':[4,5,6]}
dict2 = {'a':[7,5,6],'b':[6,8,10]}
first = pd.DataFrame(dict1)
second = pd.DataFrame(dict2)

first
    a   b
0   2   4
1   3   5
2   4   6

second
    a   b
0   7   6
1   5   8
2   6   10

first.merge(second, how='inner', left_index=True, right_index=True, suffixes=('_first','_second'))

        a_first b_first a_second b_second
0       2       4       7        6
1       3       5       5        8
2       4       6       6        10

combined_df = first.merge(second, how='inner', left_index=True, right_index=True, suffixes=('_first','_second'))

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