pandas 如何按升序排列df并重置索引编号

9udxz4iz  于 2022-12-31  发布在  其他
关注(0)|答案(2)|浏览(161)

我的是股票数据。

Open Price  High Price  Low Price   Close Price WAP No.of Shares    No. of Trades   Total Turnover (Rs.)    Deliverable Quantity    % Deli. Qty to Traded Qty   Spread High-Low Spread Close-Open   Pert Rank   Year
Date                                                        
2022-12-30  419.75  421.55  415.55  418.95  417.841704  1573    183 657265.0    954 60.65   6.00    -0.80   0.131558    2022
2022-12-29  412.15  418.40  411.85  415.90  413.236152  1029    117 425220.0    766 74.44   6.55    3.75    0.086360    2022
2022-12-28  411.90  422.05  411.30  415.35  417.917534  2401    217 1003420.0   949 39.53   10.75   3.45    0.128329    2022
2022-12-27  409.60  414.70  407.60  412.70  411.436312  1052    136 432831.0    687 65.30   7.10    3.10    0.066182    2022
2022-12-26  392.00  409.55  389.60  406.35  400.942300  2461    244 986719.0    1550    62.98   19.95   14.35   0.240920    2022
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2018-01-05  338.75  358.70  338.75  355.65  351.255581  31802   896 11170630.0  15781   49.62   19.95   16.90   0.949153

日期列为降序,必须转换为升序。同时,索引也必须转换为升序。即1、2、3、4。它不应为降序。
我尝试使用sort_values。它返回nonetype对象。
我在等一个 Dataframe 。我也试过groupby。还有别的方法吗?

g2ieeal7

g2ieeal71#

使用sort_values对日期值进行排序非常有效

df = pd.DataFrame({'Dates': ['2022-12-30', '2022-12-29','2022-12-28'],'Prices':[100,101,99]})
df
Out[142]: 
        Dates  Prices
0  2022-12-30     100
1  2022-12-29     101
2  2022-12-28      99
df.sort_values('Dates',ascending=True,inplace=True)
df
Out[144]: 
        Dates  Prices
2  2022-12-28      99
1  2022-12-29     101
0  2022-12-30     100
k4aesqcs

k4aesqcs2#

您需要sort_valuesreset_index

>>> import random
>>> df = pd.DataFrame(
    {
        "Dates": pd.Series(pd.date_range("2022-12-24", "2022-12-29")),
        "Prices": pd.Series(np.random.randint(0,100,size=(6,)))
    })

>>> df

       Dates    Prices
0   2022-12-24  31
1   2022-12-25  2
2   2022-12-26  27
3   2022-12-27  90
4   2022-12-28  87
5   2022-12-29  49

>>> df.sort_values(by="Dates", ascending=True).reset_index(drop=True, inplace=True)

相关问题