Hier ist direkter und schneller Weg:
pd.DataFrame(np.tile(np.arange(1, 49), 2000 // 48 + 1)[:2000], columns=['HH'])
Der detaillierte Schritt:
np.arange(1, 49)
eine Reihe von 1
zu 48
schafft (im Lieferumfang enthalten)
>>> l = np.arange(1, 49)
>>> l
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48])
np.tile(A, N)
wiederholt die Array A
N
mal, so dass in diesem Fall, dass Sie [1 2 3 ... 48 1 2 3 ... 48 ... 1 2 3 ... 48]
bekommen. Sie sollten das Array 2000 // 48 + 1
mal wiederholen, um mindestens 2000 Werte zu erhalten.
>>> r = np.tile(l, 2000 // 48 + 1)
>>> r
array([ 1, 2, 3, ..., 46, 47, 48])
>>> r.shape # The array is slightly larger than 2000
(2016,)
[:2000]
ruft die 2000 ersten Werte aus dem erzeugten Array Ihre DataFrame
zu erstellen.
>>> d = pd.DataFrame(r[:2000], columns=['HH'])
nette Erklärung. Vielen Dank –