Python 创建字典或数据帧的更有效方法?

Python 创建字典或数据帧的更有效方法?,python,pandas,dictionary,dataframe,Python,Pandas,Dictionary,Dataframe,我有一个正在过滤和求和的数据帧。在求和和过滤之后,我想将我的结果转换成这样的格式,使用我计算的值 Cat1 Cat2 Cat3 Dog1 Dog2 Dog3 为了获得这种格式,我将创建一组字典,然后将其转换回数据帧(注意,我的脚本中还没有包括数据帧创建,只是字典)。在一个样本子集上循环使用字典效果很好,但在实际操作中,这需要花费很多时间。我怎样才能加快速度 bigdictionary = {} for column1 in df.iloc[:,0:200]:

我有一个正在过滤和求和的数据帧。在求和和过滤之后,我想将我的结果转换成这样的格式,使用我计算的值

     Cat1   Cat2 Cat3
 Dog1
 Dog2
 Dog3
为了获得这种格式,我将创建一组字典,然后将其转换回数据帧(注意,我的脚本中还没有包括数据帧创建,只是字典)。在一个样本子集上循环使用字典效果很好,但在实际操作中,这需要花费很多时间。我怎样才能加快速度

 bigdictionary = {}
 for column1 in df.iloc[:,0:200]:
     cat = column1
     bigdictinary[cat] = {}
     for column2 in df.iloc[:,762:1000]:
         dog = column2
         filterdf = df[df[cat] > 0]
         sumdf = filterdf[dog].sum()
         bigdictionary[cat][dog] = sumdf
问题似乎真的出在词典的创建上,因为如果我不指定词典,我就不会有问题。那么,有没有更好的方法来存储我的值并仍然获得我想要的输出格式

编辑:以下是我的数据当前的样子

Index,Thing1,Thing2,Thing3,Thing4,OtherThing1,OtherThing2,OtherThing3
0,1841,0,0,1841,1841,0,1841
1,1195,1195,1195,1195,0,1195,1195
2,318,318,0,318,318,0,318
3,0,0,0,1247,1247,0,1247
4,2170,2170,0,2170,2170,0,2170
5,2049,2049,0,2049,2049,0,2049
6,5920,5920,0,5920,5920,0,5920
7,0,2501,0,0,0,2501,2501

您可以使用
遍历这两个循环。您可能想更改它以避免任何可能的混淆。您能提供您的数据片段以便我们知道如何创建您想要的结果吗?刚刚更新--如果不符合要求,请告诉我。