Python 根据时间列中两个值之间的差异,将数据帧中的每一行重复N次
这里的时间分辨率是1秒,我想把它转换成10ms 我想将表中的时间分辨率从1s改为10ms,方法是减去每行之间的时间差乘以100,然后用这个数字复制每行 例如: 行[n]将重复时间((n+1)-n)*100 当时间=2秒(第三行)时,我们的某些值组合将保持不变,直到下一行时间=22秒(第四行),因此这里的时间差是=20秒,基于此,我希望(第三行)重复(20*100) 第[2]行将重复(22-2)*100Python 根据时间列中两个值之间的差异,将数据帧中的每一行重复N次,python,pandas,dataframe,Python,Pandas,Dataframe,这里的时间分辨率是1秒,我想把它转换成10ms 我想将表中的时间分辨率从1s改为10ms,方法是减去每行之间的时间差乘以100,然后用这个数字复制每行 例如: 行[n]将重复时间((n+1)-n)*100 当时间=2秒(第三行)时,我们的某些值组合将保持不变,直到下一行时间=22秒(第四行),因此这里的时间差是=20秒,基于此,我希望(第三行)重复(20*100) 第[2]行将重复(22-2)*100 创建另一列以保存列值的差异,以便重复引用,然后执行以下操作: import pandas a
创建另一列以保存列值的差异,以便重复引用,然后执行以下操作:
import pandas as pd
# Sample dataframe
df = pd.DataFrame({
'id' : ['a', 'b', 'c', 'd'],
'col1' : [4, 5, 6, 7],
'col2' : [3, 2, 4, 3]
})
# Create a new column to hold the difference in column values
# i.e. the number of times the row repition is required.
df['times'] = df.col1 - df.col2
# create the finalDf with repeated rows
finalDf = df.loc[df.index.repeat(df.times)].reset_index(drop=True)
print(finalDf.head())
print
语句的输出如下所示:
id col1 col2 times
0 a 4 3 1
1 b 5 2 3
2 b 5 2 3
3 b 5 2 3
4 c 6 4 2
提供有关问题的更多信息(即,您预期发生的情况与实际发生的情况之间的差异)将有助于人们帮助您。目前还不清楚你需要什么帮助。您的方法似乎与其他将秒转换为亚秒周期的方法一致:谢谢您,Arthur我更新了描述以使其更清晰,我感谢您的帮助
id col1 col2 times
0 a 4 3 1
1 b 5 2 3
2 b 5 2 3
3 b 5 2 3
4 c 6 4 2