[英]Merging two dataframes with different indexes (time as index)
我想知道如何合並兩個使用時間值作為索引的數據幀。 但是,並非所有索引都相同。
說我想合並這些數據幀
index value
2019-07-12 4.0
2019-08-21 4.5
2019-08-22 4.4
2019-09-01 7.2
index value
2019-07-14 5.6
2019-07-19 9.2
2019-08-21 4.0
2019-09-02 3.2
然后得到這個結果:
index value1 value2
2019-07-12 4.0 NaN
2019-07-14 NaN 5.6
2019-07-19 NaN 9.2
2019-08-21 4.5 4.0
2019-08-22 4.4 NaN
2019-09-01 7.2 NaN
2019-09-02 NaN 3.2
我瀏覽了 pandas.concat 文檔,但要么無法理解,要么找不到使我能夠做到這一點的東西。
是的,我計划通過插入這些特定列來整理 NaN 值。
pandas.concat
在索引和列值上對齊,因此您需要重命名DataFrame
的value
列之一。
# Setup
from pandas import Timestamp
df1 = pd.DataFrame({'value': {Timestamp('2019-07-12 00:00:00'): 4.0, Timestamp('2019-08-21 00:00:00'): 4.5, Timestamp('2019-08-22 00:00:00'): 4.4, Timestamp('2019-09-01 00:00:00'): 7.2}})
df2 = pd.DataFrame({'value': {Timestamp('2019-07-14 00:00:00'): 5.6, Timestamp('2019-07-19 00:00:00'): 9.2, Timestamp('2019-08-21 00:00:00'): 4.0, Timestamp('2019-09-02 00:00:00'): 3.2}})
pd.concat([df1, df2.rename({'value':'value2'}, axis=1)]).sort_index()
[出去]
value value2
2019-07-12 4.0 NaN
2019-07-14 NaN 5.6
2019-07-19 NaN 9.2
2019-08-21 4.5 NaN
2019-08-21 NaN 4.0
2019-08-22 4.4 NaN
2019-09-01 7.2 NaN
2019-09-02 NaN 3.2
或者,您可以使用DataFrame.merge
:
df1.merge(df2, how='outer', left_index=True, right_index=True, suffixes=('1', '2'))
[出去]
value1 value2
2019-07-12 4.0 NaN
2019-07-14 NaN 5.6
2019-07-19 NaN 9.2
2019-08-21 4.5 4.0
2019-08-22 4.4 NaN
2019-09-01 7.2 NaN
2019-09-02 NaN 3.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.