Pandas 添加特定于行的时间增量(日期时间清理)(日期时间)

Pandas 添加特定于行的时间增量(日期时间清理)(日期时间),pandas,datetime,time-series,data-cleaning,timedelta,Pandas,Datetime,Time Series,Data Cleaning,Timedelta,系列数据我有2个文件。每个数据观测有20秒延迟 文件1 文件2 预期产量 到目前为止我做了什么 带代码 您可以使用freq='20s'生成一个 请注意,我将4月31日更改为有效日期。我假设真实数据将具有有效日期 dfs=[] 对于文件中的文件: column\u name=pd.read\u csv(文件,索引\u col=False)。column[0] df=pd.read\u csv(文件,索引\u col=False,名称=['col1','col2','col3'],skipr

系列数据我有2个文件。每个数据观测有20秒延迟

文件1

文件2

预期产量

到目前为止我做了什么

带代码

您可以使用
freq='20s'
生成一个

请注意,我将4月31日更改为有效日期。我假设真实数据将具有有效日期

dfs=[]
对于文件中的文件:
column\u name=pd.read\u csv(文件,索引\u col=False)。column[0]
df=pd.read\u csv(文件,索引\u col=False,名称=['col1','col2','col3'],skiprows=1)
#生成频率为20秒的日期范围
start=pd.to\u datetime(列名称,dayfirst=True)
df['col4']=pd.date\u范围(开始=开始,周期=长度(df),频率=20s')
dfs.append(df)
df=局部放电浓度(dfs)
#col1 col2 col3 col4
# 0     3     5     6 2005-03-31 23:59:00
# 1     4     6     7 2005-03-31 23:59:20
# 2     8     9    10 2005-03-31 23:59:40
# 0    10    20    30 2007-06-01 23:59:00
# 1    40    50    60 2007-06-01 23:59:20
# 2    70    80    90 2007-06-01 23:59:40

要在串联后更改频率,可以使用每个子数据帧(每个子数据帧在索引0处重新启动)并使用新的
freq

freq='30s'
df['col4']=df.groupby((df.index==0.cumsum())['col4'].apply(
lambda g:pd.系列(pd.日期范围(g[0],周期=len(g),频率=freq)))
#col1 col2 col3 col4
# 0     3     5     6 2005-03-31 23:59:00
# 1     4     6     7 2005-03-31 23:59:30
# 2     8     9    10 2005-04-01 00:00:00
# 0    10    20    30 2007-01-06 23:59:00
# 1    40    50    60 2007-01-06 23:59:30
# 2    70    80    90 2007-01-07 00:00:00

hi@tdy,只是想知道在连接之后,如果我们想将频率更改为30秒,我是否需要再次执行所有这些操作,或者是否有办法从“col4”执行此操作@sra是的,有可能,我用一个更新了答案option@sra听起来您的CSV存储了索引(通常不是一个好主意)因此,您需要
index\u col=0