比較幾個dataframes當我有三個dataframes:創建在數據幀中的列大熊貓
df1 df2 df3
scale year week n_u Code H_k year week n_u
0 -23 2016 20 131 002.55 1 2016 20 132
1 -22 2016 21 132 002.55 1 2016 23 132
2 -21 2016 22 ... 002.44 2 2016 22 131
002.32 1 2016 20 131
002.55 1 2016 22 131
002.55 1 2016 24 132
002.55 1 2016 21 132
002.55 1 2016 21 131
002.55 1 2016 24 131
002.55 2 2016 21 131
002.55 3 2016 22 132
002.55 1 2016 22 132
... ...
另外我有一個變量c1 = 002.55
。每次我設置這個變量的值。
我需要做到以下幾點:
在DF3選中所有行,如果在列「守則」的值等於C1。
然後從df2中找到列n_u中的所有值(此列中的值可以不同)。對於每個獨特的值,我需要在df1中創建一個列。
並計算df1中每行的H_k列的df3中的值的總和。我需要在數據框df1和df3中進行數年和數週的比較(年和周可以不同)。
結果應該是這樣的:
df1
scale year week 131 132
0 -23 2016 20 1 1
1 -22 2016 21 3 1
2 -21 2016 22 1 4
...
我希望的例子會給一個更好的瞭解。
而這一切都是在「scale」列中的值不等於零之前完成的。
我想我可以使用lambda。但我不知道如何寫這樣的條件。
UPD我會試着更好地描述算法:在df2['n_u']
對於每個唯一值創建新列:
選擇在df3
其中df3['Code'] = c1
雖然scale
= 0的所有行!在df1
(通常可以實現嗎?)
df1['each unique value from df2'] = sum values from df3['H_k'] on condition df1['year'] = df3['year'] df1['week'] = df3['week']