尝试Sort_Index具有周数的索引(如 w1、w2 等)并且不起作用?



数据帧看起来像这样-

User1              User2              User3           User4
w1                  0                 0                 0                 0   
w10                 0                 0                 0                 0   
w11                 0                 0                 0                 0   
w12                 0                 0                 0                 0   
w13                 0                 0                 1                 1   
w14                 0                 0                 0                 0   
w15                 0                 1                 0                 0   
w16                 0                 0                 0                 0   
w17                 0                 0                 0                 0   
w18                 0                 0                 0                 0   
w19                 0                 0                 0                 0   
w2                  0                 0                 0                 0   
w20                 0                 0                 0                 0   
w21                 0                 0                 0                 0   
w22                 0                 0                 0                 0   
w23                 0                 0                 0                 0   
w24                 0                 0                 0                 0   
w25                 0                 0                 0                 0   
w26                 0                 0                 0                 0   
w27                 0                 0                 0                 0   
w28                 0                 0                 0                 0   
w29                 0                 0                 0                 0   
w3                  0                 0                 0                 0   
w30                 0                 0                 0                 0   
w31                 0                 0                 0                 0   
w32                 0                 0                 0                 0   
w33                 0                 0                 0                 0   
w34                 0                 0                 0                 0   
w35                 0                 0                 0                 0   
w36                 0                 0                 0                 0   
w37                 0                 0                 0                 0   
w38                 0                 0                 0                 0   
w39                 0                 0                 0                 0   
w4                  0                 0                 0                 0   
w40                 1                 0                 0                 0   
w41                 0                 0                 0                 0   
w42                 0                 0                 0                 0   
w43                 0                 0                 0                 0   
w44                 0                 0                 0                 0   
w45                 0                 0                 0                 0   
w46                 0                 0                 0                 0   
w47                 0                 0                 0                 0   
w48                 0                 0                 0                 0   
w49                 0                 0                 0                 0   
w5                  0                 0                 0                 0   
w50                 0                 0                 0                 0   
w51                 0                 0                 0                 0   
w52                 0                 0                 0                 0   
w53                 0                 0                 0                 0   
w54                 0                 0                 0                 0   
w55                 0                 0                 0                 0   
w56                 0                 0                 0                 0   
w6                  0                 0                 0                 0   
w7                  0                 0                 0                 0   
w8                  0                 0                 0                 0  

现在,我正在尝试按索引对df进行排序,并且我正在使用的排序索引命令-

df.sort_index(inplace=True,axis=0)

不工作?知道为什么会这样吗?我甚至试着添加Ascending=True作为一个参数,但它仍然不起作用。

所需的输出将是按周排序的整个数据帧-

w1
w2
w3 

等等。

让我们尝试natsort:注意,您应该首先安装这个工具箱

from natsort import index_natsorted
df=df.iloc[index_natsorted(df.index)]

使用pandas 1.1.0+sort_index更新现在有了关键参数:

df.sort_index(key=lambda x: x.str.extract('(d+)').squeeze().astype(int))

IIUC,您想对此字符串类型的数据帧索引进行数字排序吗?

尝试:

idx = df.index.str.extract('(d+)').squeeze().astype(int).sort_values().index
df.iloc[idx]

最新更新