【发布时间】:2019-10-31 18:54:39
【问题描述】:
我正在尝试使用 GroupBy 对 DataFrame 进行描述性统计,并将这些值放回 DataFrame。
我的 DataFrame 包含一个非唯一的流水号,用于标识一个人(匿名),以及一些与每个人相关的值。
例如:
RunNr Value
1 126
1 158
1 18
2 65
3 31
3 4
通过使用 GroupBy,我可以计算每个人的描述性统计数据(运行次数),例如标准差。我想将这些重新添加到 DataFrame 中以进行进一步处理(例如在 Word 中制作报告)。
结果应该是这样的:
RunNr Value Std
1 126 59,9
1 158 59,9
1 18 59,9
2 65 Nan
3 31 13,5
3 4 13,5
我想出的最佳解决方案是计算标准偏差(和其他统计数据),将它们放入字典中,其中运行数字是键,值是标准偏差。
我现在有一个字典,其中字典中的流水号是唯一键,而它不在 DataFrame 中。我的下一步是遍历字典,并使用 .loc() 将相应的值插入正确的行:
for key, value in self.dict_of_std:
self.internal_main_df.loc[self.internal_main_df.Fnr == key] = value
我收到此错误:
TypeError: cannot unpack non-iterable float object
对改进我的代码或我的整体方法的建议表示赞赏。
【问题讨论】:
标签: pandas dataframe statistics data-science python-3.7