Как объединить два кадра данных (с одинаковыми именами и одинаковыми столбцами) из списка без цикла в Python? - PullRequest
0 голосов
/ 07 ноября 2019
df_list1=[A,B,C]
df_list2=[A,B,C]

Я хочу использовать pandas concat для объединения A (df_list1) в A (df_list2), от B до B, как мудрое без цикла. Здесь A, B, C - кадры данных. Я попытался перебрать один из списков и просто объединить по одному кадру данных из каждого списка за раз.

i=0
for df in df_list1:
   l=[df,df_list2[i]]
   df=pd.concat(l)
   i=i+1

Может ли кто-нибудь помочь мне сделать это без цикла, поскольку у меня есть определенные требования к времени выполнения (в основном мне нужно уменьшитьвремя)

1 Ответ

1 голос
/ 07 ноября 2019

Я не думаю, что вы можете обойтись без использования цикла, но вас может заинтересовать функция zip, которая сопоставляет элементы соответствующих списков при их итерации по ним.

df_list1=[A,B,C]
df_list2=[A,B,C]
concat_list = []

for x, y in zip(df_list1, df_list2):
    concat_list.append(pd.concat([x, y]))

РЕДАКТИРОВАТЬ:

На самом деле, вы можете использовать map:

concat_list = list(map(lambda x: pd.concat([x[0], x[1]), zip(df_list1, df_list2)))
...