gpt4 book ai didi

python - pandas to_datetime() 然后 concat() on DateTime Index

转载 作者:行者123 更新时间:2023-11-28 22:27:53 32 4
gpt4 key购买 nike

我正在尝试使用 concat 在它们的 DateTime 索引上合并 2 个 DataFrame,但它没有像我预期的那样工作。我从 documentation 中的示例中复制了一些代码对于这个例子:

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

为什么它不能识别索引中的相同日期并相应地合并?我验证了两个索引都是日期时间:

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

或者,您可以加入:

In [5]:
df.join(df2)

Out[5]:
value 0
2015-02-04 444 222
2016-03-05 555 333

合并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

关于python - pandas to_datetime() 然后 concat() on DateTime Index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43897018/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com