簡體   English   中英

如何按時間索引將兩個pandas data.frame 合並為一個,同時保留兩個pandas 的所有值

[英]How to merge two pandas data.frame into one, by time index, keeping all values from both of them

我必須使用時間索引熊貓數據框。 一個是實時序列,另一個是理想的時間序列(我想要的所有日期)。 我想按日期合並它們,但保留所有值,甚至是 NaN 值。

創建實時序列:

start_date = '2019-01-01'
end_date = '2020-01-01'
rows,cols = 51,1
data = np.random.rand(51)
tidx = pd.date_range(start_date, periods=rows, freq='16d')
data_frame = pd.DataFrame(data, columns=['EVI'], index=tidx)
print(data_frame)

輸出:

EVI
2019-01-01  0.395097
2019-01-17  0.300081
2019-02-02  0.080104
......
......

使用 NaN 值創建理想的時間序列(我只想要索引)

ideal_tidx = pd.date_range(start_date, end_date, freq='8d')
dummy_data = np.empty((ideal_tidx.size))
dummy_data[:] = np.nan
dummy_data_frame = pd.DataFrame(dummy_data, columns=['EVI'], index=ideal_tidx)

輸出:

            EVI
2019-01-01  NaN
2019-01-09  NaN
2019-01-17  NaN
....

我想合並以獲得這樣的東西:

  EVI
2019-01-01  0.395097
2019-01-09  NaN
2019-01-17  0.300081
2019-01-25  NaN
2019-02-02  0.080104
....

只需使用外連接,然后刪除虛擬數據框的不必要列

df = data_frame.merge(dummy_data_frame, left_index =True, rigth_index=True, how='outer',
    suffixes = ('', '_dummy'))
df.drop(columns='EVI_dummy', inplace=True)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM