从本质上讲,这是我在代码中所做的事情,它可以工作,但是很慢:
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
我正在尝试通过1行数据帧获取N列的列表,将它们合并在轴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