我正在尝试使用numpy数组多个数据框,如下所示:
import numpy as np
from pandas import*
import pandas as pd
C = np.arange(30).reshape(5, 6)
df = pd.DataFrame(np.arange(48).reshape((8, 6)), columns=list('abcdef'))
pxc = df / df.shift(1) - 1
def concatArrays(A, B):
cArrays_0 = np.sum(A[0,]*B, axis=1)
cArrays_1 = np.sum(A[1,]*B, axis=1)
cArrays_2 = np.sum(A[2,]*B, axis=1)
cArrays_3 = np.sum(A[3,]*B, axis=1)
cArrays_4 = np.sum(A[4,]*B, axis=1)
#(...)
pieces = [cArrays_0, cArrays_1, cArrays_2, cArrays_3, cArrays_4] #(...)
concatenated = concat(pieces, axis=1, join='outer')
return concatenated
print concatArrays(C, pxc)
我想创建一个循环,这样无论C中的列表数量如何,'连接都是自动的,避免手动编写每个cArray_i。
感谢名单
答案 0 :(得分:0)
强烈怀疑
def concatArrays(A, B):
pieces = [a*B for a in A] #(...)
concatenated = concat(pieces, axis=1, join='outer')
return concatenated
会做到这一点,但它取决于pandas
在迭代数据帧方面是否符合我的预期。