gpt4 book ai didi

python - 创建具有重复值的数据框

转载 作者:行者123 更新时间:2023-12-05 09:03:13 25 4
gpt4 key购买 nike

我正在尝试在 Pandas 中创建一个数据框,它有两个变量(“date”和“time_of_day”,其中“date”是 30 天的 120 个观察值(每天有四个观察值:1,1,1,1 ; 2,2,2,2; 等),然后第二个变量“time_of_day)重复 30 次,值为 1,2,3,4。

我发现最接近这个问题的是:How to create a series of numbers using Pandas in Python ,这让我得到了下面的代码,但我收到一个错误,它必须是一维数组。

df = pd.DataFrame({'date': np.tile([pd.Series(range(1,31))],4), 'time_of_day': pd.Series(np.tile([1, 2, 3, 4],30 ))})

所以最终的数据框看起来像

<表类="s-表"><头><日>日期 time_of_day<正文>1112131421222324

非常感谢!

最佳答案

你需要一次 np.repeat 和一次 np.tile

df = pd.DataFrame({'date': np.repeat(range(1,31),4), 
'time_of_day': np.tile([1, 2, 3, 4],30)})
print(df.head(10))
date time_of_day
0 1 1
1 1 2
2 1 3
3 1 4
4 2 1
5 2 2
6 2 3
7 2 4
8 3 1
9 3 2

或者你可以使用 pd.MultiIndex.from_product , 结果相同。

df = (
pd.MultiIndex.from_product([range(1,31), range(1,5)],
names=['date','time_of_day'])
.to_frame(index=False)
)

product 来自 itertools

from itertools import product
df = pd.DataFrame(product(range(1,31), range(1,5)), columns=['date','time_of_day'])

关于python - 创建具有重复值的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70178114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com