如何在Python中扩展单元格值范围的行?

2024-10-02 20:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个看起来像这样的数据集

    data = {'doc_ID':['Monday', 'Tuesday', 'Wednesday'], 'attachmentCount':[3,0,2], 'open':['TRUE','TRUE','FALSE']}
    df = pd.DataFrame(data)
    df

        doc_ID  attachmentCount open
    0   Monday      3           TRUE
    1   Tuesday     0           TRUE
    2   Wednesday   2           FALSE

我想通过为介于1和最大“attachmentCount”之间的每个整数插入一行来扩展数据集。所以,它应该是这样的:

        doc_ID  attachmentCount   open
   0    Monday         1          TRUE
   1    Monday         2          TRUE
   2    Monday         3          TRUE
   3    Tuesday        0          TRUE
   4    Wednesday      1          FALSE
   5    Wednesday      2          FALSE

我试过一些不同的东西,它们都是非常不正确的,不值得在这里发布。有人有什么建议吗?多谢各位


Tags: 数据idfalsetruedataframedfdatadoc
1条回答
网友
1楼 · 发布于 2024-10-02 20:30:42

我不知道,但是在纯python中,下面的代码给出了您需要的输出

a = [[0, 'Monday', 3, True], [1, 'Tuesday', 0, True], [2, 'Wednesday', 2, False]]
[[[x[0],x[1],y,x[3]] for y in set(range(1,x[2]+1)+[x[2]])] for x in a]

解释代码:

a是数据集

x是数据集的每一行

因此,在内部List Comprehensionrange(1,x[2]+1)+[x[2]])中,是从1到attachmentCount的所有整数,以及attachmentCount是什么。这是必需的,因为attachmentCount可以小于1,就像您的案例中的0一样。这将转换为一个集合以删除重复项

最里面的部分只是用新创建的值集的每个元素替换attachmentCount

相关问题 更多 >