繁体   English   中英

将每个组的两个Pandas数据帧转换为元组字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM