![](/img/trans.png)
[英]Pandas has two dataframes, want the average of the divisions between each group
[英]Convert two Pandas Dataframes into a dictionary of tuples for each group
我目前有两个DataFrame,分别是“ means”和“ variances”,分别按“类”功能分组,如图所示。
表示DataFrame:
Pregnancies Glucose BP
Class
0 4.00 99.8 56.0
1 4.75 130 62.5
差异DataFrame:
Pregnancies Glucose BP
Class
0 9.10 698 326
1 14.1 1023 463
我想返回一个由两个键值对组成的字典,键等于类编号,值作为元组包含数据框中每个要素的均值和方差值,如下所示:
dict = {0:[(4.00, 9.10), (99.8, 698), (56.0, 326)],
1:[(4.75, 14.1), (130, 1023), (62.6, 463)]}
仍在研究我的数据处理技能。 作为参考,这是从零开始构建Naive Bayes分类器的一部分。 朴素贝叶斯分类的理论对我来说并不难理解,我显然正在努力的部分是正确格式化数据。
一种方法是连接数据帧,然后使用groupby
+ apply
:
res = pd.concat([means, variances])\
.groupby(level=0).apply(lambda x: list(map(tuple, x.values.T))).to_dict()
print(res)
{0: [(4.0, 9.1), (99.8, 698.0), (56.0, 326.0)],
1: [(4.75, 14.1), (130.0, 1023.0), (62.5, 463.0)]}
如果列表列表足够,则可读性更好的是lambda x: x.values.T.tolist()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.