Python 比较熊猫中两个数据帧的索引值
我试图比较一个dataframe1中的timedelta值与另一个dataframe2中的timedelta值相等的索引,然后修剪具有更多值的dataframe,使其同时启动: 数据集1:Python 比较熊猫中两个数据帧的索引值,python,pandas,for-loop,timestamp,Python,Pandas,For Loop,Timestamp,我试图比较一个dataframe1中的timedelta值与另一个dataframe2中的timedelta值相等的索引,然后修剪具有更多值的dataframe,使其同时启动: 数据集1: TimeStamp Col1 ... Col2500 0 days 10:37:34 346 ... 635 0 days 10:38:34 124 ... 546 0 days 10:39:34 346
TimeStamp Col1 ... Col2500
0 days 10:37:34 346 ... 635
0 days 10:38:34 124 ... 546
0 days 10:39:34 346 ... 745
数据集2:
TimeStamp Col1 ... Col50
0 days 10:25:20 123 ... 789
0 days 10:25:45 183 ... 787
...
...
0 days 10:37:40 223 ... 789
for i in df2.index:
if str(df1.index[0])[7:12] == str(df2.index[i])[7:12]:
index_value = i
break
df2 = df2.drop(df2.index[[0,i-1]])
预期输出将是数据集2,在最接近分钟的同一时间启动,数据集1可用于df2.index中第一个较高值的索引,如df1.index的第一个值。然后通过位置选择第二个df2:
df2[df1.index]?使用datetime和time delta查找与另一个数据库中的相应日期最接近的日期dataframe@YaleNewman如果最近的时间不准确,你能详细说明一下如何检查它吗。很抱歉,我刚刚开始学习Pandasi。如果您可以发布一些代码行来生成与您的示例集类似的数据帧,我很乐意为您提供解决方案。为此,您可以执行df.head10.to_json。然后,将json复制粘贴到名为data的变量中。然后可以运行pd.DataFramedata=data。只要在两个数据集中都有10行就足够了。我想abt searchsorted在那里你会遇到很多麻烦!这是可行的,但出于某种原因,它也使得df有两列时间戳:\n知道为什么吗?时间戳不是索引吗?iloc函数创建了新列?我以前从未见过它。什么是打印df2.info?可能只需要df2.index=pd.to_timedeltadf2.index
#necessary both indices are sorted
df1 = df1.sort_index()
df2 = df2.sort_index()
a = df2.index.searchsorted(df1.index[0])
print (a)
2
df2 = df2.iloc[a:]
print (df2)
Col1 ... Col50
TimeStamp
10:37:40 223 ... 789