Ответ 1
Я считаю, что вы можете использовать метод append
bigdata = data1.append(data2, ignore_index=True)
чтобы их индексы просто не использовали ключевое слово ignore_index
...
Я использую фреймы данных Pandas. У меня есть начальный фрейм данных, скажем, D
. Я извлекаю из него два фрейма данных следующим образом:
A = D[D.label == k]
B = D[D.label != k]
затем я меняю метку в A
и B
A.label = 1
B.label = -1
Я хочу объединить A и B, чтобы иметь их в одном фрейме данных, что-то вроде операции объединения. Порядок данных не важен. Однако когда мы выбираем A и B из D, они сохраняют свои индексы из D.
Я считаю, что вы можете использовать метод append
bigdata = data1.append(data2, ignore_index=True)
чтобы их индексы просто не использовали ключевое слово ignore_index
...
Вы также можете использовать pd.concat
, который особенно полезен, когда вы объединяете более двух фреймов данных:
bigdata = pd.concat([data1, data2], ignore_index=True, sort =False)
Мысль добавить это здесь, если кто-то сочтет это полезным. @ostrokach уже упомянул, как вы можете объединить кадры данных между строками, которые
df_row_merged = pd.concat([df_a, df_b], ignore_index=True)
Чтобы объединиться по столбцам, вы можете использовать следующий синтаксис:
df_col_merged =pd.concat([df_a, df_b], axis=1)
Есть еще одно решение для случая, когда вы работаете с большими данными и вам нужно объединить несколько наборов данных. concat
может сильно concat
производительность, поэтому, если вы не хотите каждый раз создавать новый df, вместо этого вы можете использовать понимание списка:
frames = [ process_file(f) for f in dataset_files ]
result = pd.append(frames)
(как указано здесь в документации в нижней части раздела):
Примечание. Однако стоит отметить, что
concat
(и, следовательно,append
) создает полную копию данных, а постоянное повторное использование этой функции может привести к значительному снижению производительности. Если вам нужно использовать операцию над несколькими наборами данных, используйте понимание списка.