gpt4 book ai didi

基于数据集中先前数字的 Pandas DataFrame 编号

转载 作者:行者123 更新时间:2023-12-02 01:03:41 27 4
gpt4 key购买 nike

提前致歉,我不确定如何将 null 值添加到 pandas 数据框,所以我在列表中放置了“无”。我有一个具有以下值的数据框:

None, None, 50,60,70,80,90,None,None, None, 110, None, None

import pandas as pd
number_list = [None, None, 50,60,70,80,90, None, 100, None, None, None, 110, None, None]
df = pd.DataFrame(number_list, columns=['ID'])

那些没有的需要根据它前面的数字分配一个数字。因此,如果空白值之前的数字是 90,则空白数字将被分配为 91(前面的数字 +1)。如果 None 位于行首,则编号将从 99901 开始,依此类推。

 the final result for this example would be: 
99901, 99902, 50,60,70,80,90,91,92,93,110,111,112

我尝试在 t-sql 中执行此操作,但每批处理时间超过 3 分钟。我有几千批...任何正确方向的一点都将不胜感激!谢谢!!

最佳答案

国际联合会

# getting the group key df.ID.isnull().astype(int).diff().ne(0).cumsum()  
s=df.groupby(df.ID.isnull().astype(int).diff().ne(0).cumsum()).cumcount().add(1)[df.ID.isnull()]
df.fillna((df.ffill().fillna(90000)).add(s,0))
Out[193]:
ID
0 90001.0
1 90002.0
2 50.0
3 60.0
4 70.0
5 80.0
6 90.0
7 91.0
8 100.0
9 101.0
10 102.0
11 103.0
12 110.0
13 111.0
14 112.0

关于基于数据集中先前数字的 Pandas DataFrame 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49014909/

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