簡體   English   中英

Pandas/Numpy - 如何在與索引長度匹配的數據幀列中添加重復出現的整數

[英]Pandas/Numpy - how to add reoccurring integers in a dataframe column that matches the length of the index

我有一個包含多列和 720 行的 Pandas 數據框。 我想向這個數據框添加一個重復出現的數字范圍(0 到 23)的列。 第一行為 0,第三行第二十為 23,第二十四行為 0,以此類推。

我試過這個:

for i in range(24):
    print(i)

df['hours(integers)']= np.ones(720) * (i)

但是,它不起作用。 每一個新行都變成了 23。

如何制作這個重復出現的整數列?

使用modulo 24 ,這里不需要循環:

df = pd.DataFrame({'a':1}, index=range(720))

#default Range index
df['hours(integers)'] = df.index % 24
#any index with helper array
#df['hours(integers)'] = np.arange(len(df)) % 24

print (df.head(30))
    a  hours(integers)
0   1                0
1   1                1
2   1                2
3   1                3
4   1                4
5   1                5
6   1                6
7   1                7
8   1                8
9   1                9
10  1               10
11  1               11
12  1               12
13  1               13
14  1               14
15  1               15
16  1               16
17  1               17
18  1               18
19  1               19
20  1               20
21  1               21
22  1               22
23  1               23
24  1                0
25  1                1
26  1                2
27  1                3
28  1                4
29  1                5  

您可以在 numpy 中使用 tile 功能

df['hours(integers)'] = np.tile(list(range(24)), 30)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM