gpt4 book ai didi

python - 如何连续生成一个范围内的值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:39 24 4
gpt4 key购买 nike

我有一个 Dataset,我需要使用 pandas 对其进行修改。以下是我需要处理的特定专栏的详细信息:

df["Dependents"].value_counts()

0 345

1 102

2 101

3+ 51

Name: Dependents, dtype: int64

df["Dependents"].notnull().value_counts()

True 599

False 15

Name: Dependents, dtype: int64

我需要将null 值一一分配为012。就像如果我为第一行分配 0,那么下一行应该是 1,然后是下一个 2。然后再次从 0 开始,直到所有 null 值都被填充。

我怎样才能实现它?

最佳答案

IIUC 你可以这样做:

假设您有以下 DF:

In [214]: df
Out[214]:
Dependents
0 NaN
1 0
2 0
3 0
4 NaN
5 1
6 NaN
7 3+
8 NaN
9 3+
10 2
11 3+
12 1
13 NaN

解决方法:

In [215]: idx = df.index[df.Dependents.isnull()]

In [216]: idx
Out[216]: Int64Index([0, 4, 6, 8, 13], dtype='int64')

In [217]: df.loc[idx, 'Dependents'] = np.take(list('012'), [x%3 for x in range(len(idx))])

In [218]: df
Out[218]:
Dependents
0 0
1 0
2 0
3 0
4 1
5 1
6 2
7 3+
8 0
9 3+
10 2
11 3+
12 1
13 1

关于python - 如何连续生成一个范围内的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050776/

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