gpt4 book ai didi

python - 纠正 pandas 索引的排序顺序

转载 作者:行者123 更新时间:2023-12-01 01:37:24 29 4
gpt4 key购买 nike

我有一个如下所示的数据框。我的 Date 字段的数据类型为 datetime64[ns]:

           symbol        high         low
Date
2018-08-16 spy 285.040009 283.359985
2018-08-17 spy 285.559998 283.369995
2018-08-16 nflx 331.170013 321.209991
2018-08-17 nflx 324.369995 312.959991
2017-07-17 spy 245.910004 245.330002
2017-07-18 spy 245.720001 244.669998

我的目标是首先按 symbol 设置索引,然后按 Date 设置索引,如下所示:

                          high         low
symbol Date
spy 2017-07-17 245.910004 245.330002
2017-07-18 245.720001 244.669998
2018-08-16 285.040009 283.359985
2018-08-17 285.559998 283.369995
nflx 2018-08-16 331.170013 321.209991
2018-08-17 324.369995 312.959991

以下是我的尝试:通过这样做重置日期索引后,输出如下所示:

df.reset_index(level=['Date'], inplace=True)

Date symbol high low
0 2018-08-16 spy 285.040009 283.359985
1 2018-08-17 spy 285.559998 283.369995
2 2018-08-16 nflx 331.170013 321.209991
3 2018-08-17 nflx 324.369995 312.959991
4 2017-07-17 spy 245.910004 245.330002
5 2017-07-18 spy 245.720001 244.669998

最后设置符号和日期的索引,这将返回不需要的输出:

df.set_index(['symbol', 'Date'], inplace=True)

high low
symbol Date
spy 2018-08-16 285.040009 283.359985
2018-08-17 285.559998 283.369995
nflx 2018-08-16 331.170013 321.209991
2018-08-17 324.369995 312.959991
spy 2017-07-17 245.910004 245.330002
2017-07-18 245.720001 244.669998

最佳答案

IIUC,您可以尝试使用 swaplevel接下来是sort_index:

df.set_index('symbol', append=True).swaplevel().sort_index(level=[0,1],ascending=[False,True])

high low
symbol Date
spy 2017-07-17 245.910004 245.330002
2017-07-18 245.720001 244.669998
2018-08-16 285.040009 283.359985
2018-08-17 285.559998 283.369995
nflx 2018-08-16 331.170013 321.209991
2018-08-17 324.369995 312.959991

关于python - 纠正 pandas 索引的排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266462/

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