gpt4 book ai didi

python-3.x - 根据字段值重现/中断行

转载 作者:行者123 更新时间:2023-12-04 01:44:28 26 4
gpt4 key购买 nike

我的 dataframe 为:

id        date     value
1 2016 3
2 2016 1
1 2018 1
1 2016 1.1

现在我想用一些奇怪的原因重现行,逻辑如下:

if value > 1
reproduce row value times - 1
with value = 1
or fraction left for last unit

为了更好地理解,只考虑 dataframe 的第一行,即:

id        date     value
1 2016 3

我将其分为 3 行:

id        date     value
1 2016 1
1 2016 1
1 2016 1

但考虑最后一行,即:

id        date     value
1 2016 1.1

其中被破坏为:

id        date     value
1 2016 1
1 2016 0.1

即如果有任何分数,则将其单独分解,否则在一个单元中

然后按id分组并按日期排序显然很容易。

即新的 dataframe 看起来像:

id        date     value
1 2016 1
1 2016 1
1 2016 1
1 2016 1
1 2016 0.1
1 2018 1
2 2016 1

主要问题是复制行。

更新

一个示例dataframe代码:

df = pd.DataFrame([[1,2018,5.1],[2,2018,2],[1,2016,1]], columns=["id", "date", "value"])

最佳答案

发电机

def f(df):
for i, *t, v in df.itertuples():
while v > 0:
yield t + [min(v, 1)]
v -= 1

pd.DataFrame([*f(df)], columns=df.columns)

id date value
0 1 2018 1.0
1 1 2018 1.0
2 1 2018 1.0
3 1 2018 1.0
4 1 2018 1.0
5 1 2018 0.1
6 2 2018 1.0
7 2 2018 1.0
8 1 2016 1.0

关于python-3.x - 根据字段值重现/中断行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52287299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com