Это, по сути, то, что у меня происходит в моем коде, оно работает, но медленно:
results = []
for x1 in range(0, 10):
toConcat = []
for x2 in range(0, 10):
df = pd.DataFrame(np.array([[x2+x1+1, x2+x1+2, x2+x1+3, x2+x1+4, x2+x1+5]]), columns=["a", "b", "c", "d", "e"])
toConcat.append(df)
df = pd.concat(toConcat, axis=1)
results.append(df)
df = pd.concat(results, axis=0)
df
Я пытаюсь взять список из N столбцов по 1 строке данных, конкатих на оси 1 (столбец), затем возьмите их список и объедините их на оси 0 (строка). Я думаю, что мне нужно удалить строку:
df = pd.concat(toConcat, axis=1)
из цикла, потому чтоЯ знаю, что вызов pd.concat внутри цикла сильно замедляет работу.Я надеюсь сделать что-то вроде этого:
results = []
for x1 in range(0, 10):
toConcat = []
for x2 in range(0, 10):
df = pd.DataFrame(np.array([[x2+x1+1, x2+x1+2, x2+x1+3, x2+x1+4, x2+x1+5]]), columns=["a", "b", "c", "d", "e"])
toConcat.append(df)
results.append(toConcat)
*magic concatenation*
df
Я хочу объединить вдоль двух разных осей одновременно.Возможно ли это, или кто-то может придумать лучший способ получить желаемый результат?Спасибо!
РЕДАКТИРОВАТЬ: понял это!Хотя я не уверен, что это наиболее эффективно.Вот оно:
results = []
for x1 in range(0, 10):
toConcat = []
for x2 in range(0, 10):
df = pd.DataFrame(np.array([[x2+x1+1, x2+x1+2, x2+x1+3, x2+x1+4, x2+x1+5]]), columns=["a", "b", "c", "d", "e"])
toConcat.append(df)
results.append(toConcat)
df = pd.concat([pd.concat(x, axis=1) for x in results], axis=0)
df