gpt4 book ai didi

python - 向数据帧添加索引级别

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

我有一个数据框,其中一个索引作为日期时间,如下所示,我希望添加一个第一列索引(请参阅下面的“目标”),其中任何日期都与其交叉(First_column)。

First_column = ['s0000', 's0001', 's0002', 's0003', 's0004', ...]

有人知道如何继续吗?

非常感谢。亚历克西斯

我的数据框:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 17544 entries, 2015-01-01 00:00:00 to 2016-12-31 23:00:00
Data columns (total 12 columns):

目标:

<class 'pandas.core.frame.DataFrame'>
MultiIndex: 996000 entries, (s0000, 2015-01-01 00:00:00) to (s0999, 2012-12-31 00:00:00)
Data columns (total 8 columns):

情景日期

s0000    2015-02-28
2015-03-03
2015-03-04
2015-03-05
2015-03-06
2015-03-07
2015-03-10
2015-03-11
2015-03-12
2015-03-13
s0001 2015-02-28
2015-03-03
2015-03-04
2015-03-05
2015-03-06
2015-03-07
2015-03-10
2015-03-11
2015-03-12
2015-03-13
s0002 2015-02-28
2015-03-03
2015-03-04
2015-03-05
2015-03-06
2015-03-07
2015-03-10
2015-03-11
2015-03-12
2015-03-13
s0003 ...

最佳答案

您可以使用pd.concat使用 keys 参数:

import pandas as pd
df = pd.DataFrame(range(10), index=pd.date_range('2015-2-27', freq='B', periods=10))
# 0
# 2015-02-27 0
# 2015-03-02 1
# 2015-03-03 2
# 2015-03-04 3
# 2015-03-05 4
# 2015-03-06 5
# 2015-03-09 6
# 2015-03-10 7
# 2015-03-11 8
# 2015-03-12 9
first_col = ['s{:04d}'.format(i) for i in range(1,5)]
# ['s0001d', 's0002d', 's0003d', 's0004d']

newdf = pd.concat([df]*len(first_col), keys=first_col)
print(newdf)

产量

                  0
s0001 2015-02-27 0
2015-03-02 1
2015-03-03 2
2015-03-04 3
2015-03-05 4
2015-03-06 5
2015-03-09 6
2015-03-10 7
2015-03-11 8
2015-03-12 9
s0002 2015-02-27 0
2015-03-02 1
2015-03-03 2
2015-03-04 3
2015-03-05 4
2015-03-06 5
2015-03-09 6
2015-03-10 7
2015-03-11 8
2015-03-12 9
s0003 2015-02-27 0
2015-03-02 1
2015-03-03 2
2015-03-04 3
2015-03-05 4
2015-03-06 5
2015-03-09 6
2015-03-10 7
2015-03-11 8
2015-03-12 9
s0004 2015-02-27 0
2015-03-02 1
2015-03-03 2
2015-03-04 3
2015-03-05 4
2015-03-06 5
2015-03-09 6
2015-03-10 7
2015-03-11 8
2015-03-12 9

幸运的是,我刚刚了解到这个yesterday from Joris .

关于python - 向数据帧添加索引级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571800/

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