Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在datetime索引上,先复制到_datetime(),然后复制到concat()_Python_Pandas_Datetime - Fatal编程技术网

Python 在datetime索引上,先复制到_datetime(),然后复制到concat()

Python 在datetime索引上,先复制到_datetime(),然后复制到concat(),python,pandas,datetime,Python,Pandas,Datetime,我正试图在DateTime索引上使用concat合并2个数据帧,但它没有像我预期的那样工作。我从中的示例中复制了一些代码,用于此示例: import pandas as pd df = pd.DataFrame({'year': [2015, 2016], 'month': [2, 3], 'day': [4, 5], 'value': [444,555]}) df.set_in

我正试图在DateTime索引上使用
concat
合并2个数据帧,但它没有像我预期的那样工作。我从中的示例中复制了一些代码,用于此示例:

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)
谢谢。

传递到按列连接:

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