我试图搜索所有数据帧都具有相同值(例如1)的时间间隔(例如1分钟)。
给定n个时间序列(df1,df2,df3,.)可能有不同的时间戳。时间序列具有离散状态值0和1。从这些跳转函数中,我想划分一个级数,其中的值永远不应该大于1,我想的是,以某种方式和所有框架之和并应用max(x,1)。
import pandas as pd
df1 = pd.DataFrame({'2018-01-01 00:00:00': [1],
'2018-01-01 00:01:00': [0],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:00': [1]})
df2 = pd.DataFrame({'2018-01-01 00:00:00': [0],
'2018-01-01 00:01:30': [1],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:30': [1]})
df3 = pd.DataFrame({'2018-01-01 00:00:00': [1],
'2018-01-01 00:01:15': [1],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:45': [0]})
frames = [df1, df2, df3]
result = pd.concat(frames)
print(df1.add(df2.add(df3,axis="index",fill_value=0),axis="index",fill_value=0))中间结果:
[3 rows x 8 columns]
2018-01-01 00:00:00 2018-01-01 00:01:00 2018-01-01 00:01:15 ... 2018-01-01 00:04:00 2018-01-01 00:04:30 2018-01-01 00:04:45
0 2 0.0 1.0 ... 1.0 1.0 0.0我想有一种更舒适和直观的方式(连接,合并,加入.)做这件事。我会把我的问题分成:
G 216
发布于 2019-10-16 20:53:10
IIUC,你可以直接用max
pd.concat([df1,df2,df3], sort=False).max()或者,如果希望按索引对齐数据帧:
pd.concat([df1,df2,df3], sort=False).groupby(level=0).max()输出:
2018-01-01 00:00:00 2018-01-01 00:01:00 2018-01-01 00:03:00 \
0 1 0.0 0 https://stackoverflow.com/questions/58421370
复制相似问题