gpt4 book ai didi

python - 如何以特殊形式添加一行

转载 作者:行者123 更新时间:2023-12-04 12:12:50 24 4
gpt4 key购买 nike

我有一个 pandas.DataFrame形式的

index     df      df1

0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 2 111
6 3 111
7 0 111
8 2 111
9 3 111
10 0 111
11 1 111
12 2 111
13 3 111
14 0 111
15 1 111
16 2 111
17 3 111
18 1 111
19 2 111
20 3 111
我想创建一个数据框,其中列 df 重复 0、1、2、3。但是数据中缺少一些东西。我试图通过附加行值来用 0 填充空白。
这是我的预期结果:
index     df      df1

0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 1 0
6 2 111
7 3 111
8 0 111
9 1 0
10 2 111
11 3 111
12 0 111
13 1 111
14 2 111
15 3 111
16 0 111
17 1 111
18 2 111
19 3 111
20 0 0
21 1 111
22 2 111
23 3 111
我怎样才能做到这一点?
编辑:
如果我的输入如下,我该怎么办?
index     df1      df2

0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 3 111
6 1 111
7 2 111
这是我的预期结果:
index  df1   df2

0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 1 0
6 2 0
7 3 111
8 0 0
9 1 111
10 2 111
11 3 0

最佳答案

您可以设置自定义分组来检测“df”中增加的数字何时重置为较低(或相等)的值。
然后使用“df”中的唯一值和唯一组的乘积重新索引。
最后,使用 fillna 的组合重新处理输出/reset_index/rename_axis :

# uncomment below if "index" is not the index
# df = df.set_index('index')

# find positions where "df" resets and make groups
groups = df['df'].diff().le(0).cumsum()

(df.set_index([groups, 'df'], drop=True) # set custom groups and "df" as index
.reindex(pd.MultiIndex.from_product([groups.unique(), # reindex with all
range(4), # combinations
], names=['group', 'df']))
.fillna(0, downcast='infer') # set missing values as zero
.reset_index('df') # all below to restore a range index
.reset_index(drop=True)
.rename_axis('index')
)
输出:
       df  df1
index
0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 1 0
6 2 111
7 3 111
8 0 111
9 1 0
10 2 111
11 3 111
12 0 111
13 1 111
14 2 111
15 3 111
16 0 111
17 1 111
18 2 111
19 3 111
20 0 0
21 1 111
22 2 111
23 3 111
第二个例子的输出:
       df1  df2
index
0 0 111
1 1 111
2 2 111
3 3 111
4 0 111
5 1 0
6 2 0
7 3 111
8 0 0
9 1 111
10 2 111
11 3 0

关于python - 如何以特殊形式添加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69188655/

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