根据数据框块将不同的值分配到新列中

时间:2018-07-20 12:12:16

标签: python pandas

我有一个数据框:

df = pd.DataFrame({'a':[1,2,3,4,5,6,7,8,9,10],'b':[100,100,100,100,100,100,100,100,100,100]})

    a    b
0   1  100
1   2  100
2   3  100
3   4  100
4   5  100
5   6  100
6   7  100
7   8  100
8   9  100
9  10  100 

我想创建一列c,以便为3行的每个块分配一个值。

我正在寻找的输出:

    a    b    c
0   1  100    1
1   2  100    1
2   3  100    1
3   4  100    2
4   5  100    2
5   6  100    2
6   7  100    3
7   8  100    3
8   9  100    3
9  10  100    4

我尝试遍历数据框,然后使用.loc分配列值。

是否有更好/快速的方法?

1 个答案:

答案 0 :(得分:1)

如果索引是RangeIndex,则可以使用它为c列创建值:

df['c'] = df.index // 3 + 1