迭代数据帧字典元组,以创建包含不同长度

时间:2018-06-11 10:01:38

标签: python for-loop dataframe tuples

我试图按年份循环数据帧对(例如,cml15和nw15是一对,cml16和nw16是另一对),从每一对中提取列' PurchasePrice'数据由另一列(' GORegion')分组,具有12个子组,因此产生12列不同长度。我想创建新的数据帧,这些数据帧由每对中的这些列组成,具有不同的名称,即All2015,它包含cml15和nw15的所有12个GORegion子组的PurchasePrice数据,新数据帧的列看起来像这个每年分别(15,16和17):

cml15region1 cml15region2 ... etc nw15region1 nw15region2 ... etc

我正在尝试代码:

tuple_years = ({'cml2015' : cml15, 'nw2015' : nw15}, {'cml2016' : cml16, 
'nw2016' : nw16}, {'cml2017' : cml17, 'nw2017' : nw17})

All = pd.DataFrame()

for d in tuple_years:
    for key, df in d.items():
        for i in range (1,13):
            All[(key + 'region' +str(i))] = df.loc[df['GORegion'] == i]['PurchasePrice'].reset_index(drop=True)

这给了我一个数据帧中每年对的所有列(当我想要三个独立的数据帧时,每年对应一个),但它是不正确的,因为它将索引设置为第一列的长度,因此未命中从其他列中输出大量数据。

有谁知道这怎么可能?我想要的输出是有三个数据帧(All2015,All2016和All2017),每个数据帧共有24列(12个区域的cml PurchasePrice数据和12个区域的nw数据)。我希望这是有道理的!

0 个答案:

没有答案