Skip to main content
 首页 » 编程设计

在 pandas Dataframe 的任意切片中以 Python 方式递增数字

2025年05月04日16xing901022

这段代码显示了我想要创建的 DataFrame

df = pd.DataFrame(index=pd.date_range(start='4/1/2012', periods=10)) 
df['foo'] = 7 
df['what_i_want'] = [0,0,0,0,1,2,3,0,0,0] 

结果如下:

    foo what_i_want 
2012-04-01  7   0 
2012-04-02  7   0 
2012-04-03  7   0 
2012-04-04  7   0 
2012-04-05  7   1 
2012-04-06  7   2 
2012-04-07  7   3 
2012-04-08  7   0 
2012-04-09  7   0 
2012-04-10  7   0 

我想找出一种方法,可以在系列的任意切片上创建这些 1,2,...,n 系列。即:df['2012-04-05':'2012-04-07'] = magic_function()

但我不确定如何在不使用循环的情况下做到这一点。

请您参考如下方法:

IIUC,您可以使用 loc 进行切片并分配一个 range。

df['what_i_want'] = 0 
df.loc['2012-04-05':'2012-04-07', 'what_i_want'] = range(1, 4) 
 
df 
 
            foo  what_i_want 
2012-04-01    7            0 
2012-04-02    7            0 
2012-04-03    7            0 
2012-04-04    7            0 
2012-04-05    7            1 
2012-04-06    7            2 
2012-04-07    7            3 
2012-04-08    7            0 
2012-04-09    7            0 
2012-04-10    7            0