Python 根据时间列中两个值之间的差异,将数据帧中的每一行重复N次

Python 根据时间列中两个值之间的差异,将数据帧中的每一行重复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

这里的时间分辨率是1秒,我想把它转换成10ms

我想将表中的时间分辨率从1s改为10ms,方法是减去每行之间的时间差乘以100,然后用这个数字复制每行

例如: 行[n]将重复时间((n+1)-n)*100

当时间=2秒(第三行)时,我们的某些值组合将保持不变,直到下一行时间=22秒(第四行),因此这里的时间差是=20秒,基于此,我希望(第三行)重复(20*100)

第[2]行将重复(22-2)*100


创建另一列以保存列值的差异,以便重复引用,然后执行以下操作:

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