Как объединить N DataFrames в один, используя первый DF в качестве ссылки?Python

Программы на Python
Ответить
Anonymous
 Как объединить N DataFrames в один, используя первый DF в качестве ссылки?

Сообщение Anonymous »

Я пытаюсь объединить N кадров данных, чтобы создать одну таблицу для будущего анализа. Сейчас N = 8, но скоро N = 500+.
У меня есть несколько наборов данных, и я написал код, который подсчитывает, сколько раз в них появлялись уникальные объекты.
Первый DF — это один столбец, представляющий собой список всех уникальных объектов, а остальные DF состоят из двух столбцов: объекты, найденные в наборе данных X, и количество объектов:



Объект
Набор данных A




A
1000


B
50


C
1



Поскольку я использовал .values_count(), DF содержат только те объекты, которые были в наборе данных и расположены в порядке убывания. Не очень полезно для анализа.
Вот почему я хотел объединить их с первым DF, списком объектов, чтобы я мог видеть, сколько объектов находится в каждом наборе данных, даже если это число равно 0 (ну, код анализа мог видеть). Это будет выглядеть так:



Объект (список)
Набор данных A
Набор данных B
Набор данных C




A
1000
1000
0


B
50
0
0


C
1
30
2000


D
0*
0
100



*NaN=0
Ось можно менять.
Но я не нашел примеров, которые позволили бы мне это сделать. Я пробовал concat() и merge(), но с concat они просто складываются, а слияние работает только с последним DF. И поскольку я работаю с очень большим количеством DF, вручную помещать их в merge() не получается.
Мой текущий код таков:

Код: Выделить всё

dfs = [object_list]
result = pd.DataFrame()

df = code_that_calculates_the_objects_in_data(not really important for question)
dfs.append(df)

for x in dfs:
result = pd.concat([result, x], axis=0, sort=True)

result.to_csv('file.tsv', sep='\t', na_rep='0')
Итак, как объединить сотни DF, чтобы получить результат, который я описал?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -reference
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»