gpt4 book ai didi

python - Pandas/Python - 均衡不同的索引

转载 作者:太空宇宙 更新时间:2023-11-03 16:57:18 24 4
gpt4 key购买 nike

我有两个数据框。

df1:

                     0            1            2
Date
2005-10-01 772.142457 5600.491978 -5522.102692
2005-11-01 445.861074 4866.226303 -4455.554864
2005-12-01 -390.237513 923.679907 379.381452
2006-01-01 -755.725402 673.734737 198.968080
2006-02-01 -755.725402 673.734737 198.968080

df2:

              Value
Date
2005-07-01 -0.07920
2005-08-01 -0.01412
2005-09-01 -0.03646
2005-10-01 0.17432
2005-11-01 -0.05409
2005-12-01 0.04988
2006-01-01 -0.00232

我希望它们具有相同的索引,以便 df1 保持如下所示:

                     0            1            2
Date
2005-07-01 NaN NaN NaN
2005-08-01 NaN NaN NaN
2005-09-01 NaN NaN NaN
2005-10-01 772.142457 5600.491978 -5522.102692
2005-11-01 445.861074 4866.226303 -4455.554864
2005-12-01 -390.237513 923.679907 379.381452
2006-01-01 -755.725402 673.734737 198.968080
2006-02-01 -755.725402 673.734737 198.968080

df2 保持这样:

              Value
Date
2005-07-01 -0.07920
2005-08-01 -0.01412
2005-09-01 -0.03646
2005-10-01 0.17432
2005-11-01 -0.05409
2005-12-01 0.04988
2006-01-01 -0.00232
2006-02-01 NaN

我已经搜索了一段时间来完成此任务,但找不到任何功能:(

有人可以帮忙吗?

最佳答案

您想要reindex并将另一个 df 的 unioned 索引传递为要重新索引的新索引:

In [135]:
df.reindex(df1.index.union(df.index))

Out[135]:
0 1 2
Date
2005-07-01 NaN NaN NaN
2005-08-01 NaN NaN NaN
2005-09-01 NaN NaN NaN
2005-10-01 772.142457 5600.491978 -5522.102692
2005-11-01 445.861074 4866.226303 -4455.554864
2005-12-01 -390.237513 923.679907 379.381452
2006-01-01 -755.725402 673.734737 198.968080
2006-02-01 -755.725402 673.734737 198.968080

In [134]:
df1.reindex(df.index.union(df1.index))
Out[134]:
Value
Date
2005-07-01 -0.07920
2005-08-01 -0.01412
2005-09-01 -0.03646
2005-10-01 0.17432
2005-11-01 -0.05409
2005-12-01 0.04988
2006-01-01 -0.00232
2006-02-01 NaN

您可以先创建组合索引并将其传递给上面以使其更具可读性:

In [136]:
combined_idx = df.index.union(df1.index)
combined_idx

Out[136]:
DatetimeIndex(['2005-07-01', '2005-08-01', '2005-09-01', '2005-10-01',
'2005-11-01', '2005-12-01', '2006-01-01', '2006-02-01'],
dtype='datetime64[ns]', name='Date', freq=None)

因此df.reindex(combined_idx)df1.reindex(combined_idx)将起作用

关于python - Pandas/Python - 均衡不同的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318167/

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