如何在数组python中均匀分布值

如何在数组python中均匀分布值,python,pandas,numpy,Python,Pandas,Numpy,假设我有16个索引的df,我想平均分配数字A-L 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我期望的输出是: 1 A 2 A 3 B 4 B 5 C 6 C 7 D 8 D 9 E 10 F 11 G 12 H 13 I 14 J 15 K 16 L 有什么可能的方法可以做到这一点

假设我有16个索引的df,我想平均分配数字A-L

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
我期望的输出是:

1       A
2       A
3       B
4       B
5       C
6       C
7       D
8       D
9       E
10      F
11      G
12      H
13      I
14      J
15      K
16      L
有什么可能的方法可以做到这一点吗

rname是第二列 ,df2是第一列,
我的方式是np.repeatername,np.ceillendf2/lenrname[:lendf2]

您可以:

df['new_col'] = np.sort((np.arange(16) % 12) +1)
你可以做:

df['new_col'] = np.sort((np.arange(16) % 12) +1)
对于字符串注释,可以这样做

alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ar_int = [alphabet[int(x)] for x in np.arange(0, 12, (12/16))]
df[1] = ar_int
print(df)

    0   1
0   1   A
1   2   A
2   3   B
3   4   C
4   5   D
5   6   D
6   7   E
7   8   F
8   9   G
9   10  G
10  11  H
11  12  I
12  13  J
13  14  J
14  15  K
15  16  L
对于字符串注释,可以这样做

alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ar_int = [alphabet[int(x)] for x in np.arange(0, 12, (12/16))]
df[1] = ar_int
print(df)

    0   1
0   1   A
1   2   A
2   3   B
3   4   C
4   5   D
5   6   D
6   7   E
7   8   F
8   9   G
9   10  G
10  11  H
11  12  I
12  13  J
13  14  J
14  15  K
15  16  L
这可能对你有帮助

import numpy as np
rname = ['A','B','C','D','E','F','G','H','I','J','K','L']

n_times = int(np.ceil(len(data) / len(rname)))

lst = np.repeat(rname,n_times)

n_elems = (len(df) - len(rname))

output = list(lst[:n_elems*n_times]) + list(rname[n_elems:])
print(output)
输出

这可能对你有帮助

import numpy as np
rname = ['A','B','C','D','E','F','G','H','I','J','K','L']

n_times = int(np.ceil(len(data) / len(rname)))

lst = np.repeat(rname,n_times)

n_elems = (len(df) - len(rname))

output = list(lst[:n_elems*n_times]) + list(rname[n_elems:])
print(output)
输出


请显示您对此np.repeaterName、np.ceillendf2/lenrname[:lendf2]@fahadsiddiqui的尝试。您说您想要均匀分布的值,但您想要的输出偏向低端。换句话说,你得到的AA,BB比单个计数I,J,K等的值要多。你想要偏差吗?请展示你对这个np.repeaterName、np.ceillendf2/lenrname[:lendf2]@fahadsiddiqui的尝试。你说你想要均匀分布的值,但你想要的输出偏差在低端。换句话说,你得到的AA,BB比单个计数I,J,K等的值要多。是否需要偏差?这将不会产生所需的输出。如果第二列为stringHi,则会产生所需的输出。如果第二列为stringHi,则会产生所需的输出。如果第二列为stringHi,则会产生所需的输出,如果第二列为stringHi,则会产生所需的输出