[英]pandas to_datetime() then concat() on DateTime Index
我正在嘗試使用concat
在其DateTime索引上合並2個DataFrame,但是它沒有按預期工作。 我從該示例文檔的示例中復制了一些代碼:
import pandas as pd
df = pd.DataFrame({'year': [2015, 2016],
'month': [2, 3],
'day': [4, 5],
'value': [444,555]})
df.set_index(pd.to_datetime(df.loc[:,['year','month','day']]),inplace=True)
df.drop(['year','month','day'],axis=1,inplace=True)
df2 = pd.DataFrame(data=[222,333],
index=pd.to_datetime(['2015-02-04','2016-03-05']))
pd.concat([df,df2])
Out[1]:
value 0
2015-02-04 444.0 NaN
2016-03-05 555.0 NaN
2015-02-04 NaN 222.0
2016-03-05 NaN 333.0
它為什么不識別索引上的相同日期並進行相應合並? 我驗證了兩個索引都是DateTime:
df.index
Out[2]: DatetimeIndex(['2015-02-04', '2016-03-05'], dtype='datetime64[ns]', freq=None)
df2.index
Out[3]: DatetimeIndex(['2015-02-04', '2016-03-05'], dtype='datetime64[ns]', freq=None)
謝謝。
通過axis=1
來按列連接:
In [7]:
pd.concat([df,df2], axis=1)
Out[7]:
value 0
2015-02-04 444 222
2016-03-05 555 333
或者,您可以join
ed:
In [5]:
df.join(df2)
Out[5]:
value 0
2015-02-04 444 222
2016-03-05 555 333
或merge
d:
In [8]:
df.merge(df2, left_index=True, right_index=True)
Out[8]:
value 0
2015-02-04 444 222
2016-03-05 555 333
您需要axis = 1:
pd.concat([df,df2], axis=1)
輸出:
value 0
2015-02-04 444 222
2016-03-05 555 333
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.