分配n行不同的值

时间:2019-09-06 12:10:29

标签: python pandas

我有一个熊猫数据框,其中有2列,分别是数字 Random_Score

Digits    Random_Score
000000         31 
000001         131  
000002         132   
000003         74    

列数字包含长度为6的0到9的数字的所有组合,所以我总共有10 ^ 6行。当前,我想创建一个新列 Number ,这样,对于整个数据框,前10000行的值将为1,其后10000行2的值将依此类推。最终的熊猫数据框应如下所示:

Digits     Random_Score  Number 
000000           31       1
000001           131      1
000002           132      1
.
.
.
999999           74      100

我曾尝试使用Iterrows解决此问题,但是我没有走得太远,因此我没有在提交中包含代码。你们能给我提些建议吗?

1 个答案:

答案 0 :(得分:1)

使用整数除以10000并添加1

np.random.seed(123)

N = 1000000
d = {
    'Digits': np.arange(N),
    'Random_Score': np.random.randint(100, size=N),
}

df = pd.DataFrame(d)
df['Digits'] = df['Digits'].astype(str).str.zfill(6)

#if default RangeIndex
#df['Number'] = df.index // 10000 + 1

#any index
df['Number'] = np.arange(len(df)) // 10000 + 1


print (df)
        Digits  Random_Score  Number
0       000000            66       1
1       000001            92       1
2       000002            98       1
3       000003            17       1
4       000004            83       1
       ...           ...     ...
999995  999995            36     100
999996  999996            76     100
999997  999997            54     100
999998  999998            76     100
999999  999999            43     100

[1000000 rows x 3 columns]