满足条件时重新格式化数据帧/添加行

2024-05-14 22:14:28 发布

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

我希望在满足条件时添加数据帧行和编辑列。我希望B列仅为“1”。如果该值大于1,则添加等于S>;1,同时按日期asc对可乐进行分类。示例如下:

原始DF:

   ColA        ColB
2021-03-09       1
2021-03-09       3
2021-03-10       2
2021-03-10       1
2021-03-10       2
2021-03-11       2

期望测向

   ColA         ColB
2021-03-09       1
2021-03-09       1
2021-03-09       1
2021-03-09       1
2021-03-10       1
2021-03-10       1
2021-03-10       1
2021-03-10       1
2021-03-10       1
2021-03-11       1
2021-03-11       1

任何建议都将不胜感激


Tags: 数据gt编辑示例df分类建议asc
1条回答
网友
1楼 · 发布于 2024-05-14 22:14:28

假设'ColB'中只有正整数,可以使用np.repeat从头开始重新创建数据帧。repeat负责复制,因此我们可以指定ColB=1

import pandas as pd
import numpy as np

df = (pd.DataFrame(np.repeat(df.ColA, df.ColB))
        .assign(ColB=1))

或者,如果您有一个非重复的索引,您可以重复该索引,并使用loc来获取该重复。当您有多个要重复的列时,此选项非常有用:

df = (df.loc[df.index.repeat(df.ColB)]
        .assign(ColB=1))

         ColA  ColB
0  2021-03-09     1
1  2021-03-09     1
1  2021-03-09     1
1  2021-03-09     1
2  2021-03-10     1
2  2021-03-10     1
3  2021-03-10     1
4  2021-03-10     1
4  2021-03-10     1
5  2021-03-11     1
5  2021-03-11     1

相关问题 更多 >

    热门问题