比较熊猫中两个数据帧的索引值

Bra*_*wed 3 python timestamp for-loop pandas

我试图比较在哪个索引中,一个 dataframe1 中的 timedelta 值等于另一个 dataframe2 中的 timedelta 值,然后修剪具有更多值的数据帧,使它们同时开始:

数据集 1:

    TimeStamp            Col1  ...  Col2500
    0 days  10:37:34     346   ...  635
    0 days  10:38:34     124   ...  546
    0 days  10:39:34     346   ...  745
Run Code Online (Sandbox Code Playgroud)

数据集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]])
Run Code Online (Sandbox Code Playgroud)

预期输出将是 Dataset2 与 Dataset1 同时开始(最接近分钟)

jez*_*ael 5

您可以将searchsorted索引用于第一个更高的值,df2.index例如 的第一个值df1.index。然后df2按位置选择第二个iloc

#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
Run Code Online (Sandbox Code Playgroud)