[英]Get the sum of a multikey dict by one key and add it to a datfarme column in Python?
我有一個 dataframe 和一個字典如下:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([[1, 2], [4, 5]]),columns=['a', 'b'])
df
a b
0 1 2
1 4 5
dict
{(0, 'A', 1): 1, (0, 'A', 2): 2, (1, 'B', 1): 3, (1, 'B', 2): 4}
我試圖通過字典的第一個鍵獲得總和,並將結果作為新列添加到我的 dataframe 中。
這是我到目前為止所擁有的,但我認為必須有一種更有效的方法來做到這一點。
total_by_1st={}
for (x, _, _), v in dict.items():
if x in total_by_1st:
total_by_1st[x] += v
else:
total_by_1st[x]=v
total_by_1st
{0: 3, 1: 7}
df['c'] = df.index.map(total_by_1st)
df
a b c
0 1 2 3
1 4 5 7
我試圖通過字典的第一個鍵得到總和,並將結果作為新列添加到我的 dataframe
您可以在級別 0 上轉換為系列和總和:
df['new'] = pd.Series(d).sum(level=0)
print(df)
a b new
0 1 2 3
1 4 5 7
其中d
是存儲字典的變量的名稱。 請注意,您不應將變量命名為與內置函數相同的變量( d
或類似的名稱,而不是dict
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.