Python 如何将包含数据和datetime64[ns]的列表与具有datetime64[ns]索引的数据帧合并
我想从Python 如何将包含数据和datetime64[ns]的列表与具有datetime64[ns]索引的数据帧合并,python,pandas,dataframe,datetime64,Python,Pandas,Dataframe,Datetime64,我想从数据帧数据中读取两列S1_max和S2_max。只要S1_max列中存在一个值,我就要检查每个S1_max后面是否有相应的S2_max信号。如果是,我计算S1_max和S2_max信号之间的时间增量。然后在单独的dictd中的S2_max列的datetime[64ns]索引处对该结果进行索引,然后将其附加到列表增量_数据中。如何在相应的datetime[64ns]索引处将此结果添加到已存在的datadataframe中 这是我创建的delta_数据: #time between each
数据帧
数据
中读取两列S1_max和S2_max。只要S1_max列中存在一个值,我就要检查每个S1_max
后面是否有相应的S2_max
信号。如果是,我计算S1_max
和S2_max
信号之间的时间增量。然后在单独的dict
d
中的S2_max列的datetime[64ns]
索引处对该结果进行索引,然后将其附加到列表增量_数据中。如何在相应的datetime[64ns]
索引处将此结果添加到已存在的data
dataframe中
这是我创建的delta_数据
:
#time between each S2 global maxima: 86 ns/samp freq 200 = 0.43 ns
#Checking that each S1 is succeeded by a corresponging S2 signal and calculating the time delta:
delta_data = []
diff_S1 = 0
diff_S2 = 0
i = 0
while((i + diff_S1 + 1 < len(peak_indexes_S1)) and (i + diff_S2<len(peak_indexes_S2))):
# Find next ppg peak after S1 peak
while (df["S2"].index[peak_indexes_S2[i + diff_S2]] < df["S1"].index[peak_indexes_S1[i+diff_S1]]):
diff_S2=diff_S2+1
while (df["S1"].index[peak_indexes_S1[i+diff_S1+1]] < df["S2"].index[peak_indexes_S2[i + diff_S2]]):
diff_S1=diff_S1+1
i_peak_S2 = peak_indexes_S2[i + diff_S2]
i_peak_S1 = peak_indexes_S1[i + diff_S1]
d={}
d["td"] = (df["S2"].index[i_peak_S2]-df["S1"].index[i_peak_S1]).microseconds
d["time"] = df["S2"].index[i_peak_S2]
PATdata.append(d)
i = i + 1
time_delta=pd.DataFrame(delta_data)
这是我的数据
数据帧:
l1 l2 l3 l4 S1 S2 S2_max S1_max
2019-08-07 13:11:21.485 0.572720 0.353433 0.701320 1.418840 4.939690 2.858326 2.858326 NaN
2019-08-07 13:11:21.490 0.572807 0.353526 0.701593 1.419052 4.939804 2.854604 NaN 4.939804
此数据帧由以下人员创建:
data = pd.read_csv('file.txt')
data.columns = ['l1','l2','l3','l4','S1','S2']
nbrMeasurments = sum(1 for line in open('file.txt'))
data.index = pd.date_range('2019-08-07 13:06:30'), periods=nbrMeasurments-1, freq="5L")
我已经尝试了DataFrame。首先组合_
和追加
此外,在尝试将另一个数据帧添加到数据时也会出现相同的问题。此数据帧在日期时间帧中没有ms:
S3 S4
Date
2019-08-07 13:06:30 111 61
据我所知,您正在尝试将另一列附加到现有数据帧
以下是如何做到这一点:
df1 = pd.DataFrame({'names':['bla', 'blah', 'blahh'], 'values':[1,2,3]})
df2_to_concat = pd.DataFrame({'put_me_as_a_new_column':['row1', 'row2', 'row3']})
pd.concat([df1.reset_index(drop=True), df2_to_concat.reset_index(drop=True)], axis=1)
reset\u index(drop=True)
确保您不会生成NaN或重复的索引列。据我所知,您正在尝试将另一列附加到现有数据帧
以下是如何做到这一点:
df1 = pd.DataFrame({'names':['bla', 'blah', 'blahh'], 'values':[1,2,3]})
df2_to_concat = pd.DataFrame({'put_me_as_a_new_column':['row1', 'row2', 'row3']})
pd.concat([df1.reset_index(drop=True), df2_to_concat.reset_index(drop=True)], axis=1)
reset\u index(drop=True)
确保您不会生成NaN或重复的索引列。提问时请尽量更精确(且不太详细)。例如,在您的问题中,您提到了“datetime[64ns]”,但它没有出现在您的代码中。请在提问时尽量更精确(且不太详细)。例如,在您的问题中,您提到了“datetime[64ns]”,但它没有出现在您的代码中。当我的“PATdata”和“data”数据帧不同时,我如何实现这一点(我添加了PATdata,以便您可以看到)。很抱歉我的不精确,但由于我不确定这个问题,我很难过滤出重要和琐碎的信息(从而使问题变得冗长)。当我的“PATdata”和“data”数据帧不同时,我如何才能做到这一点(我添加了PATdata,以便您可以看到)。抱歉我的不精确,但由于我对这个问题不确定,我很难过滤掉重要和琐碎的信息(从而使问题变得冗长)。