![](/img/trans.png)
[英]Pandas: How to merge two data frames and fill NaN values using values from the second data frame
[英]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.