Python 基于dataframe区块将不同的值分配到新列中
我有一个数据帧:Python 基于dataframe区块将不同的值分配到新列中,python,pandas,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行中的每一块,它都
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
我尝试遍历dataframe,然后使用.loc分配列值
有没有更好/更快捷的方法?如果您的索引是RangeIndex,您可以使用它为c列创建值:
df['c'] = df.index // 3 + 1
如果索引不是连续范围,则np.arange0,lendf.index//3+1。不能保证索引是数字,更不用说整数了。最好使用np.arangelendf//3+1