2017-02-20 4 views
0

I'vaを無視:パンダは、インデックスとしての時間を探して、実際に2データフレームの日付

  1. 第1は、二番目のは
日付/時刻とその他の情報が含まれてい
  • 日付/時間でいくつかの情報が含まれています私は、最も近い時間インデックス(または値を見つけるために、最初のデータフレーム内の所与の時間で必要

    (日付を無視する)をキーとして、最も近い時間を使用して2データフレームを結合する必要

    CSVデータフレーム1 FROM

    date;index 
    01/01/90 00:00:00;2 
    01/01/90 00:00:30;9 
    

    CSV DATAFRAME 2 FROM:必要に応じ

    date;value 
    02/02/00 00:00:02;300 
    

    )は、第2のデータフレーム

    に私はあなたが

    EDITを理解してほしいです

    date;value;index 
    02/02/00 00:00:02;300;2 
    
  • +1

    あなたが所望の出力を持ついくつかのサンプルデータを追加することはできますか? – jezrael

    答えて

    1

    あなたはmethod='nearest'reindexを使用することができます。

    #new indexes with same dates, but different times 
    df1.index = pd.to_datetime(df1['date'].dt.strftime('%H:%M:%S')) 
    df2.index = pd.to_datetime(df2['date'].dt.strftime('%H:%M:%S')) 
    print (df1) 
                date index 
    date           
    2017-02-20 00:00:00 1990-01-01 00:00:00  2 
    2017-02-20 00:30:00 1990-01-01 00:00:30  9 
    
    print (df2) 
                date value 
    date           
    2017-02-20 00:02:00 2000-02-02 00:00:02 300 
    
    df3 = df1.reindex(df2.index, method='nearest') 
    #add values from df2 
    df = pd.concat([df3.drop('date', axis=1), df2], axis=1).reset_index(drop=True) 
    print (df) 
        index    date value 
    0  2 2000-02-02 00:00:02 300 
    
    +0

    インデックス2になるため、02/02/00 00:00:04; 300をcsvに追加するとどちらかが表示されます – Timo

    +0

    インデックスで%Hを省略したのはなぜですか? – Timo

    +0

    はい、申し訳ありません。あなたが正しいです。 – jezrael

    関連する問題