簡體   English   中英

熊貓數據框中的sort_values函數無法正常工作

[英]sort_values function in pandas dataframe not working properly

我有一個1281695行和4列的數據集,其中有2013年至2019年的6年月度數據。因此,很明顯在數據集中有重復的日期。 我想按日期升序排列數據,例如2013年1月,2013年2月,.. 2013年12月,2014年1月,...... 2019年12月(6年的數據)。我想實現所有日期的升序數據集,但它顯示某些數據的升序和其余數據的隨機序。

我嘗試了pandas庫的sort_values。

我嘗試過這樣的事情:

data = df.sort_values(['SKU', 'Region', 'FMonth'], axis=0, ascending=[False, True, True]).reset_index()

其中SKU,Region,FMonth是我的自變量。 FMonth是日期變量。

代碼將安排數據的開頭,而不是數據的結尾。 就像我嘗試過的一樣:

data.head()

結果:

    index            SKU       Region     FMonth       sh

 0   8264  855019.133127  3975.495636 2013-01-01  67640.0

 1  20022  855019.133127  3975.495636 2013-02-01  73320.0

 2  31972  855019.133127  3975.495636 2013-03-01  86320.0

 3  43897  855019.133127  3975.495636 2013-04-01  98040.0

 4  55642  855019.133127  3975.495636 2013-05-01  73240.0

和,

data.tail()

結果:

     index       SKU      Region        FMonth       sh

 1281690     766746    0.000087    7187.170501   2017-03-01      0.0

 1281691     881816    0.000087    7187.170501   2017-09-01      0.0

 1281692     980113    0.000087    7187.170501   2018-02-01      0.0

 1281693     1020502   0.000087    7187.170501   2018-04-01      0.0

 1281694     1249130   0.000087    7187.170501   2019-03-01      0.0

其中“ sh”是我的因變量。

數據並不是很吸引人,但是請僅關注FMonth(date)列。

如我們所見,最后一行不是按升序排列的,而起始行是按指定順序排列的。 而且,如果我在上面的代碼中更改了FMonth列的升序屬性,則意味着數據以降序顯示在起始行中而不是最后一行中的順序。 我究竟做錯了什么? 如何在所有數據集中實現升序? 發生了什么,為什么?

您是否只需要優先考慮Month?

z = pd.read_clipboard()
z.columns = [i.strip() for i in z.columns]

z.sort_values(['FMonth', 'Region', 'SKU'], axis=0, ascending=[True, True, True])


Out[23]: 
   index  SKU  Region    FMonth     sh
1  20022    8      52  1/1/2013  73320
0   8264    1      67  1/1/2013  67640
3  43897    5      34  3/1/2013  98040
2  31972    3      99  3/1/2013  86320
4  55642    4      98  5/1/2013  73240

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM