【发布时间】:2021-03-11 13:41:54
【问题描述】:
我正在尝试遍历 pandas 数据框的列(由 1 和 0 组成)到 groupby 并对另一列求和,然后将 groupby 列名称作为键添加到空字典中,并将总和值作为值。但是我当前的代码添加了一个数组作为值而不是实际值。下面是一些示例代码。
import pandas
sample_dict = {'flag1':[0,1,1,1,1,0],
'flag2':[1,1,1,0,0,1],
'flag3':[0,0,0,0,0,1],
'flag4':[1,1,1,1,0,0],
'flag5':[1,0,1,0,1,0],
'dollars':[100,200,300,400,500,600]}
sample_df = pd.DataFrame(sample_dict)
ecols = sample_df.columns[:5]
rate = .46
empty_dict = {}
for i in ecols:
df= sample_df[sample_df[i] == 1]
yield1 = df.groupby(i)['dollars'].sum().values*rate
empty_dict[i] = yield1
empty_dict
该代码产生以下输出:
Out[223]:
{'flag1': array([644.]),
'flag2': array([552.]),
'flag3': array([276.]),
'flag4': array([460.]),
'flag5': array([414.])}
我只想将实际整数作为值而不是数组。
【问题讨论】:
-
熊猫问题中的真正minimal reproducible example!它值得 +1...
标签: python dictionary for-loop