循环遍历pddataframe中的列表和concat

时间:2013-05-21 20:52:53

标签: numpy pandas

我正在尝试使用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。

感谢名单

1 个答案:

答案 0 :(得分:0)

强烈怀疑

def concatArrays(A, B):

     pieces = [a*B for a in A] #(...)
     concatenated = concat(pieces, axis=1, join='outer')
     return concatenated

会做到这一点,但它取决于pandas在迭代数据帧方面是否符合我的预期。