Py学习  »  Python

根据条件从数据帧创建python列表

Somnath • 6 年前 • 1957 次点击  

我正试图根据数据帧中列值的特定条件从熊猫数据帧生成一个列表,我的df看起来类似

        df =      
                       48 150  39   0
        0    BE0974302342   0   0  21
        1    BE0974302342   3   3  19
        2    BE0974302342   F   2   2
        3    FR0000073843   0   0  22
        4    FR0000073843   3   3  20
        5    FR0000073843   F   2   2
        6    FR0000076861   0   0  21
        7    FR0000076861   3   3  18
        8    FR0000076861   F   1   3
        9    FR0000076861   F   2   3
        10   FR0000076887   0   0  13
        11   FR0000076887   3   3  11
        12   FR0000076887   8   8  19
        13   FR0000076887   F   2   2
        14   FR0000077562   0   0  22
        15   FR0000077562   3   3  19
        16   FR0000077562   F   2   3
        17   FR0000079147   0   0  20
        18   FR0000079147   3   3  16
        19   FR0000079147   F   1   1
        20   FR0000079147   F   2   4
        21   FR0004034072   0   0  14
        22   FR0004034072   3   3  12
        23   FR0004034072   8   8  21
        24   FR0004034072   F   2   2
        25   FR0004152874   0   0  22
        26   FR0004152874   3   3  20
        27   FR0004152874   F   1   1
        28   FR0004152874   F   2   2
        29   FR0004178572   0   0  21
        ...

在这里,第150列和第39列的组合有意义,所以我想根据组合提取计数,有6种可能的组合

    150 39
    0   0
    3   3
    4   4
    8   8
    F   1
    F   2

我想形成一个最终的清单,它将对“48”列中的每个值的这些组合进行计数,

例如:

'BE0974302342', (150=0, 39=0) record count is 21, (150=3, 39=3) is 19, (150=4, 39=4) is 0, (150=8, 39=8) is 0, (150=F, 39=1) is 0, (150=F,39=2) is 2  

所以最终的记录列表应该是

[[BE0974302342,21,19,0,0,0,2], 
[FR0000073843,22,20,0,0,0,2],
[FR0000076861,21,18,0,0,1,3]...]

我尝试了什么:我尝试将df转换成list,然后遍历每个子列表,检查150和39个值的组合,这些值部分有效,但我希望有一个更好的解决方案,能够完美地工作,会感谢任何帮助或建议的方法要做到这一点,先谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38701
文章 [ 1 ]  |  最新文章 6 年前