Python 创建匹配数据帧长度的重复值列
Python create column of repeated values that matches length of dataframe
我需要创建一个重复初始值 32 次的列,然后将其增加 1 并重复 32 次,依此类推,直到达到原始数据帧的长度。
我尝试执行以下操作(以及其他次要变体):
timestamps = [1506447570]
i = 0
k = 0
for i in range(len(df)):
timestamps.append(timestamps[i])
k+=1
i+= 1
if k >31:
timestamps.append(timestamps[i]+1)
k =0
这是前 2 次重复的样子:
timestamps = [
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571]
所以它应该继续重复这个模式,直到它是数据帧的长度。这些值是 unix 时间戳,数据以 32HZ 的频率收集,所以我只是想制作一个简单的时间戳列。
之前给这个:)
acc = 2
seedStamp = 1506447570
timeStamps = []
for i in range(acc):
for k in range(33):
timeStamps.append(seedStamp)
if k >31:
seedStamp += 1
timeStamps.append(seedStamp)
print('--')
for i in timeStamps:
print(i)
您可以在 df.index
上使用 len
来获取数据帧的长度。从那里,您可以迭代该长度的范围并使用除法和 floor
来更改数字。
from math import floor
val = 1506447570
df['stamps'] = [val + floor(i / 32) for i in range(len(df.index))]
我需要创建一个重复初始值 32 次的列,然后将其增加 1 并重复 32 次,依此类推,直到达到原始数据帧的长度。
我尝试执行以下操作(以及其他次要变体):
timestamps = [1506447570]
i = 0
k = 0
for i in range(len(df)):
timestamps.append(timestamps[i])
k+=1
i+= 1
if k >31:
timestamps.append(timestamps[i]+1)
k =0
这是前 2 次重复的样子:
timestamps = [
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447570,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571,
1506447571]
所以它应该继续重复这个模式,直到它是数据帧的长度。这些值是 unix 时间戳,数据以 32HZ 的频率收集,所以我只是想制作一个简单的时间戳列。
之前给这个:)
acc = 2
seedStamp = 1506447570
timeStamps = []
for i in range(acc):
for k in range(33):
timeStamps.append(seedStamp)
if k >31:
seedStamp += 1
timeStamps.append(seedStamp)
print('--')
for i in timeStamps:
print(i)
您可以在 df.index
上使用 len
来获取数据帧的长度。从那里,您可以迭代该长度的范围并使用除法和 floor
来更改数字。
from math import floor
val = 1506447570
df['stamps'] = [val + floor(i / 32) for i in range(len(df.index))]