Numpy 在pd.dataframe中循环列表和concat

Numpy 在pd.dataframe中循环列表和concat,numpy,pandas,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):

我正在尝试将数据帧与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) 
我想创建一个循环,这样“concatenated”是自动的,而不管C中的列表数量如何,避免手工编写每个cArray_I

Thanx强烈怀疑

def concatArrays(A, B):

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

将实现这一点,但这取决于熊猫在数据帧上的迭代行为是否符合我的预期。

您希望如何将形状的东西与形状的东西相乘(5,6)(8,6)?我想将pxc中的每列乘以A列表中的相应数字。例如,pxc中的第一列(A)乘以A列表中的第一个数字,然后将第二列乘以第二个数字,以此类推,直到df和ndaray的最后一列,创建一个数据帧。在将np.sum,axis=1应用于df并创建列(ndarray?)后,该列将成为一列。然后连接(?)将为A中的每个列表创建的各种列,创建最终的数据帧,索引与pxc相同。无需导入熊猫两次,只需按照pd导入熊猫即可,您可以从熊猫导入*中删除行
@askewchan-thanx。有什么建议吗?你知道能不能做到吗?@Pedro9不,对不起,我其实不认识熊猫,只是看到了双重输入:P