#python #pandas
#python #панды
Вопрос:
Я хочу объединить 2 CSV-файла. Результирующий столбец фрейма данных должен содержать все столбцы из csv 1. Например:
df1 = pd.DataFrame({'name': ['foo', 'bar', 'baz', 'foo'],'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'class': ['a', 'b', 'c', 'd'],'value': [5, 6, 7, 8]})
df3 = pd.merge(df1, df2,how='outer')
Результат df3: значение имени foo 1 bar 2 baz 3 foo 5 NaN 6 NaN 7 NaN 8
Как я могу получить вышеуказанный результат, используя объединения?
Комментарии:
1. Совершенно непонятно, о чем вы спрашиваете. Пожалуйста, укажите входные данные, ожидаемый результат и код, который вы уже пробовали.
2. я хочу объединить 2 CSV-файла. Например, csv 1 содержит 10 столбцов по 50 строк, а csv 2 — 12 столбцов по 10 строк. Но оба столбца не совсем одинаковы. между ними всего несколько общих столбцов. После слияния мне нужен результирующий фрейм данных, который будет содержать все 10 столбцов (из csv 1) и 60 строк (50 10).
Ответ №1:
Это должно помочь вам разобраться,
import pandas as pd
df1 = pd.DataFrame({'name': ['foo', 'bar', 'baz', 'foo'],'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'class': ['a', 'b', 'c', 'd'],'value': [5, 6, 7, 8]})
df3 = pd.merge(df1, df2,how='outer')
df3.drop([item for item in df2.columns if item not in df1.columns],axis = 1)
Что дает
Ответ №2:
import pandas as pd
df1 = pd.DataFrame({'name': ['foo', 'bar', 'baz', 'foo'],'value': [1, 2, 3, 5]})
df2 = pd.DataFrame({'class': ['a', 'b', 'c', 'd'],'value': [5, 6, 7, 8]})
result = pd.concat([df1, df2], axis=1)
print(result)