Python 迭代具有相同结构的数据帧的dict的最佳方法是,生成一个包含每个(行、列)元素和的数据帧?

Python 迭代具有相同结构的数据帧的dict的最佳方法是,生成一个包含每个(行、列)元素和的数据帧?,python,pandas,numpy,dictionary,Python,Pandas,Numpy,Dictionary,我有一个dict,d1,其中每个值是一个两列(ID和Weight)的100行数据帧 我想遍历dict,对于每个数据帧,我想对n行中的所有“权重”值求和,其中n是表示该行的1到100之间的值。然后我想将输出写入另一个dict,d2,其中键是1-100,值是值的总和 示例d1值数据帧: ID Weight 1 0.021 2 0.445 3 1.018 .. .. .. 99 77.31 100 234.04 基本上,假设我有10000个这样的数据帧,我想将

我有一个dict,d1,其中每个值是一个两列(ID和Weight)的100行数据帧

我想遍历dict,对于每个数据帧,我想对n行中的所有“权重”值求和,其中n是表示该行的1到100之间的值。然后我想将输出写入另一个dict,d2,其中键是1-100,值是值的总和

示例d1值数据帧:

ID    Weight
1     0.021
2     0.445
3     1.018
..
..
..
99    77.31
100   234.04
基本上,假设我有10000个这样的数据帧,我想将10000个数据帧中ID 1的所有权重值相加,然后将10000个数据帧中ID 2的所有权重值相加,以此类推,直到ID 100

我有一个解决方案,基本上是一个嵌套循环。它起作用了,也会起作用。然而,我真的很想扩展我的基本熊猫/裸体知识,我想知道是否有一种更像蟒蛇的方法来做到这一点

我的现行守则:

for i in range (1,101):
    tot = 0
    for key, value in d1.items():
        tot = tot + value.at[i,'Weight']
    d2[i] = tot

非常感谢任何帮助和建议

您可以使用添加功能:

#create a zero filled dataframe
df = pd.DataFrame(0, index=np.arange(len(df1)), columns=df1.columns)
#iterate through dict and add values to df
for value in d1.values():
  df = df.add(value)
您可以通过
df_i=df_i.set_index('ID')
将您的
ID
设置为索引,然后将它们全部相加,以便只添加权重,然后在结尾处
df=df.reset_index()
。 例如:

df:


Ehsan,非常感谢您的详细回复-我完全错过了熊猫添加功能-这将对我今后的工作非常有用。我真的很感激。一旦我可以投票,我会回来做你的答案!编辑:看来我现在可以投票了!
df1 = pd.DataFrame([(1,2),(3,4),(5,6)], columns=['ID','Weight'])
   ID  Weight
0   1       2
1   3       4
2   5       6

df2 = pd.DataFrame([(10,20),(30,40),(50,60)], columns=['ID','Weight'])
   ID  Weight
0  10      20
1  30      40
2  50      60

df3 = pd.DataFrame([(100,200),(300,400),(500,600)], columns=['ID','Weight'])
    ID  Weight
0  100     200
1  300     400
2  500     600

d1 = {'df1':df1,'df2':df2,'df3':df3}
df = pd.DataFrame(0, index=np.arange(len(df1)), columns=df1.columns)
print(df)
for value in d1.values():
  df = df.add(value)
    ID  Weight
0  111     222
1  333     444
2  555     666