这段代码显示了我想要创建的 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
关于在 pandas Dataframe 的任意切片中以 Python 方式递增数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458813/