以最快的方式从数据框Python中的索引创建字典的新列表

Toan Nguyen Phuoc

我的字典中有大约2亿数据index_data

index_data = [
    {3396623046050748: [0, 1],
     3749192045350356: [2],
     4605074846433127: [3],
     112884719857303: [4],
     507466746864539: [5],
     .....
    }
]

键是CustId中的值,而值是CustID中的索引df_data

我有一个DataFrame df_data

CustID               Score     Number1     Number2     Phone
3396623046050748     2           2           3         0000
3396623046050748     6           2           3        0000
3749192045350356     1           56          23        2222
4605074846433127     67          532         321       3333
112884719857303      3           11          66        4444
507466746864539      7           22          96        5555

注意:如果CustID重复,则只有Score每一行中的具有不同的数据

我想创建一个新的dict列表(每个CustIDTotal_Score的平均值ScoreNumberNumber2除法Number1):

result = [
     {'CustID'     :3396623046050748,
      'Total_Score': 4,
      'Number'     : 1.5,
      'Phone'      : 0000
     },
     {'CustID'     :3749192045350356,
      'Total_Score': 1,
      'Number'     : 0.41,
      'Phone'      : 2222
     },
     {'CustID'     :4605074846433127,
      'Total_Score': 67,
      'Number'     : 0.6,
      'Phone'      : 3333
     },
     .........
]

我的解决方案是循环字典并使用来自多处理导入过程,管理器的多处理

def calculateTime(ns, value):
    # get data with share of each process
    df_data2 = ns.df_data
    result2 = ns.result

    # Create new DF from index and old DF
    df_sampleresult = df_data2.loc[value].reset_index(drop = True)

    # create sample list to save data need to append in final result
    dict_sample['CustID'] = df_sampleresult['CustID'][0]
    dict_sample['Time_Score'] = df_sampleresult['Score'].mean()

    result2.append(dict_sample)
    ns.result = result2
    ns.df_data = df_data


if __name__ == '__main__':
    result = list()
    manager = Manager()
    ns = manager.Namespace()
    ns.df = df_data
    ns.result = result

    job = [Process(target = calculateTime, args=(ns,value)) for key,value in 
    index_data.items()]
    _ = [p.start() for p in job]
    _ = [p.join() for p in job]

但这不起作用。性能是否较慢而内存较高?我的设置多进程正确吗?还有另一种方法吗?

Mayank porwal

达蒙:

In [353]: df
Out[353]: 
             CustID  Score  Number1  Number2  Phone
0  3396623046050748      2        2        3   0000
1  3396623046050748      6        2        3   0000
2  3749192045350356      1       56       23   2222
3  4605074846433127     67      532      321   3333
4   112884719857303      3       11       66   4444
5   507466746864539      7       22       96   5555

    
In [351]: d = df.groupby(['CustID', 'Phone', round(df.Number2.div(df.Number1), 2)])['Score'].mean().reset_index(name='Total_Score').rename(columns={'level_2': 'Number'}).to_dict('records')

In [352]: d
Out[352]: 
[{'CustID': 112884719857303, 'Phone': 4444, 'Number': 6.0, 'Total_Score': 3},
 {'CustID': 507466746864539, 'Phone': 5555, 'Number': 4.36, 'Total_Score': 7},
 {'CustID': 3396623046050748, 'Phone': 0000, 'Number': 1.5, 'Total_Score': 4},
 {'CustID': 3749192045350356, 'Phone': 2222, 'Number': 0.41, 'Total_Score': 1},
 {'CustID': 4605074846433127, 'Phone': 3333, 'Number': 0.6, 'Total_Score': 67}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从字典列表创建python数据框

来自分类Dev

Pandas 从字典列表中创建数据框

来自分类Dev

遍历 pandas 数据框中的行并匹配列表字典中的值以创建新列

来自分类Dev

从包含数据列表的字典列表中创建熊猫数据框

来自分类Dev

熊猫从包含字典列表的行创建新数据框的方法

来自分类Dev

嵌套列表中字典的数据框-Python

来自分类Dev

PYTHON BEGUINNER:如何从 Python 字典列表中创建 Pandas 数据框?

来自分类Dev

从数据框列创建 python 嵌套字典并将结果保存在新的 DataFrame 中

来自分类Dev

在Python中,如何创建带有包含多级字典的列表的数据框?

来自分类Dev

如何从数据框中的两列创建列表字典

来自分类Dev

根据字典列表中的元素创建熊猫数据框

来自分类Dev

从以索引为键的数据框创建字典

来自分类Dev

以迭代方式在数据框中创建多个新列

来自分类Dev

在python数据框中创建新的矢量

来自分类Dev

Python:根据给定的索引使用现有 df 中的行创建新数据框

来自分类Dev

在多索引熊猫数据框中创建多个新列

来自分类Dev

正确的索引编制以在Pandas中创建新的数据框

来自分类Dev

在多索引数据框中创建新列并填充

来自分类Dev

如何从python中的数据框创建列表

来自分类Dev

在多索引熊猫数据框中创建列名称列表

来自分类Dev

使用字符串列表或字典基于数据框中的现有列创建新列

来自分类Dev

列表中字典字典的数据框

来自分类Dev

从包含列表的嵌套字典创建数据框

来自分类Dev

使用列表和字典创建数据框

来自分类Dev

从字典值列表创建数据框

来自分类Dev

从列表字典创建数据框

来自分类Dev

如何从数据框中的csv列表创建新的csv

来自分类Dev

列表中的嵌套字典到数据框python

来自分类Dev

python中数据框的字典列表错误

Related 相关文章

  1. 1

    从字典列表创建python数据框

  2. 2

    Pandas 从字典列表中创建数据框

  3. 3

    遍历 pandas 数据框中的行并匹配列表字典中的值以创建新列

  4. 4

    从包含数据列表的字典列表中创建熊猫数据框

  5. 5

    熊猫从包含字典列表的行创建新数据框的方法

  6. 6

    嵌套列表中字典的数据框-Python

  7. 7

    PYTHON BEGUINNER:如何从 Python 字典列表中创建 Pandas 数据框?

  8. 8

    从数据框列创建 python 嵌套字典并将结果保存在新的 DataFrame 中

  9. 9

    在Python中,如何创建带有包含多级字典的列表的数据框?

  10. 10

    如何从数据框中的两列创建列表字典

  11. 11

    根据字典列表中的元素创建熊猫数据框

  12. 12

    从以索引为键的数据框创建字典

  13. 13

    以迭代方式在数据框中创建多个新列

  14. 14

    在python数据框中创建新的矢量

  15. 15

    Python:根据给定的索引使用现有 df 中的行创建新数据框

  16. 16

    在多索引熊猫数据框中创建多个新列

  17. 17

    正确的索引编制以在Pandas中创建新的数据框

  18. 18

    在多索引数据框中创建新列并填充

  19. 19

    如何从python中的数据框创建列表

  20. 20

    在多索引熊猫数据框中创建列名称列表

  21. 21

    使用字符串列表或字典基于数据框中的现有列创建新列

  22. 22

    列表中字典字典的数据框

  23. 23

    从包含列表的嵌套字典创建数据框

  24. 24

    使用列表和字典创建数据框

  25. 25

    从字典值列表创建数据框

  26. 26

    从列表字典创建数据框

  27. 27

    如何从数据框中的csv列表创建新的csv

  28. 28

    列表中的嵌套字典到数据框python

  29. 29

    python中数据框的字典列表错误

热门标签

归档