用python组填充dataframe的列

用python组填充dataframe的列,python,pandas,Python,Pandas,我有一个熊猫数据框 哪个有一行 key 1 2 3 ... 93 我拥有机器数量=3台 我想为每台机器分配相同数量的钥匙。i、 e 共有9把钥匙和3台机器,因此,每台机器应关联3把钥匙。 以下是所需的数据帧: key machine allocated 1 1 2 1 3 1 .......... 90 3 91

我有一个熊猫数据框 哪个有一行

key
1
2
3
...
93
我拥有
机器数量=3台

我想为每台机器分配相同数量的钥匙。i、 e

共有9把钥匙和3台机器,因此,每台机器应关联3把钥匙。 以下是所需的数据帧:

key    machine allocated    
1         1                 
2         1                 
3         1                 
..........

90        3
91        1
92        1
93        1  

我们可以使用groupby吗?

您可以使用arange的楼层划分:

df = pd.DataFrame({'key' : range(1, 10)})

N = 3
N1 = len(df.index) / N

df['machine allocated'] = ((np.arange(len(df.index)) // N1) + 1).astype(int)
print (df)
   key  machine allocated
0    1                  1
1    2                  1
2    3                  1
3    4                  2
4    5                  2
5    6                  2
6    7                  3
7    8                  3
8    9                  3


你有一个熊猫数据框,它有一列,对吗?@Mihai DanielVirna这只是一个测试示例,它可能有多个列,但你写的是row insteadsir,实际上有一个键入错误,我有90个键要平均分布在3台机器上,请检查我是否有93个键和6台机器,它给机器分配为7,密钥=91,92,93,它应该再次恢复到1,2…3,根据我的密钥增加理论,我不在这里。因此,如果
N=4
带有
df=pd.DataFrame({'key':range(1,10)})
所需的输出是什么?
N = 2
N1 = len(df.index) / N

df['machine allocated'] = ((np.arange(len(df.index)) // N1) + 1).astype(int)
print (df)
   key  machine allocated
0    1                  1
1    2                  1
2    3                  1
3    4                  1
4    5                  1
5    6                  2
6    7                  2
7    8                  2
8    9                  2