根据子字符串对熊猫数据框列进行排序

凤凰

我有一个熊猫数据框,如下所示:

Timestamp_Start Event_ID Duration
    555.54944   Fix_1   0.42248
    559.07281   Fix_10  0.01996
    559.14642   Fix_11  0
    556.03192   Fix_2   0.16113
    556.27985   Fix_3   0.24188
    556.56097   Fix_4   0.04987
    556.65497   Fix_5   0.10748
    556.80859   Fix_6   0.75708
    557.57983   Fix_7   0.11329
    557.75348   Fix_8   0.65643
    558.43665   Fix_9   0.27447
    555.97925   Sac_1   0.04577
    559.09961   Sac_10  0.0404
    559.15302   Sac_11  0.00726
    556.19916   Sac_2   0.07403
    556.52747   Sac_3   0.02789
    556.61865   Sac_4   0.02985
    556.76849   Sac_5   0.0337
    557.57294   Sac_6   0
    557.69965   Sac_7   0.04687
    558.41632   Sac_8   0.01325
    558.71796   Sac_9   0.34552

我想对“Event_ID”列进行排序,以便 Fix_1,Fix_2,Fix_3... 和 Sac_1,Sac_2,Sac_3... 按顺序出现,如下所示:

Timestamp_StartEvent_ID Duration
    555.54944   Fix_1   0.42248
    556.03192   Fix_2   0.16113
    556.27985   Fix_3   0.24188
    556.56097   Fix_4   0.04987
    556.65497   Fix_5   0.10748
    556.80859   Fix_6   0.75708
    557.57983   Fix_7   0.11329
    557.75348   Fix_8   0.65643
    558.43665   Fix_9   0.27447
    559.07281   Fix_10  0.01996
    559.14642   Fix_11  0
    555.97925   Sac_1   0.04577
    556.19916   Sac_2   0.07403
    556.52747   Sac_3   0.02789
    556.61865   Sac_4   0.02985
    556.76849   Sac_5   0.0337
    557.57294   Sac_6   0
    557.69965   Sac_7   0.04687
    558.41632   Sac_8   0.01325
    558.71796   Sac_9   0.34552
    559.09961   Sac_10  0.0404
    559.15302   Sac_11  0.00726

关于如何做到这一点的任何想法?谢谢你的帮助。

斯里拉姆 TP

数据帧上的正常排序将不起作用,因为您需要将字符串中的整数视为 int 值。

不过,它可以用额外的空间来完成。

你可以像这样制作两列,

df['event'] = df.Event_ID.str.rsplit("_").str[0]
df['idx'] = df.Event_ID.str.rsplit("_").str[-1].astype(int)

现在,对这两列进行排序,

df.sort_values(['event', 'idx'])


    Timestamp_Start Event_ID  Duration  idx event
0         555.54944    Fix_1   0.42248    1   Fix
3         556.03192    Fix_2   0.16113    2   Fix
4         556.27985    Fix_3   0.24188    3   Fix
5         556.56097    Fix_4   0.04987    4   Fix
6         556.65497    Fix_5   0.10748    5   Fix
7         556.80859    Fix_6   0.75708    6   Fix
8         557.57983    Fix_7   0.11329    7   Fix
9         557.75348    Fix_8   0.65643    8   Fix
10        558.43665    Fix_9   0.27447    9   Fix
1         559.07281   Fix_10   0.01996   10   Fix
2         559.14642   Fix_11   0.00000   11   Fix
11        555.97925    Sac_1   0.04577    1   Sac
14        556.19916    Sac_2   0.07403    2   Sac
15        556.52747    Sac_3   0.02789    3   Sac
16        556.61865    Sac_4   0.02985    4   Sac
17        556.76849    Sac_5   0.03370    5   Sac
18        557.57294    Sac_6   0.00000    6   Sac
19        557.69965    Sac_7   0.04687    7   Sac
20        558.41632    Sac_8   0.01325    8   Sac
21        558.71796    Sac_9   0.34552    9   Sac
12        559.09961   Sac_10   0.04040   10   Sac
13        559.15302   Sac_11   0.00726   11   Sac

您可以根据需要重置索引,删除额外的列

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据字符串索引上的自定义顺序对熊猫数据框进行排序

根据指定列中的字符串值条目是否包含子字符串来分隔熊猫数据框

如何使用python pandas根据特定的(字符串)列对数据框进行排序?

根据熊猫数据框中的另一列获取子字符串

根据完全匹配的字符串过滤熊猫数据框

熊猫数据框通过查找子字符串替换多列中的字符串

熊猫数据框,根据其整数表示对字符串数据进行分组和排序

如何通过同时包含数字和字符串的列对熊猫数据框进行排序?

根据子字符串对列表进行拆分和排序

如何根据列表从熊猫数据框中过滤子字符串?

根据条件熊猫数据框列删除字符串

按字符串日期对熊猫数据框进行排序而无需转换

熊猫apply():如何根据字符串匹配将选定的列相乘并返回完整的数据框

根据列对熊猫数据框数据进行排列/排序

根据条件在熊猫数据框列中的特殊字符上拆分字符串

在熊猫数据框中以字符串格式对日期进行排序?

根据字符串值列对熊猫数据框行进行排序

无法根据子字符串集过滤熊猫数据框

如何根据特定列中的值对熊猫数据文件中的字符串排序?

替换字符串并在熊猫数据框中排序

根据分类列的值对熊猫数据框进行排序

按子字符串条件对数据框进行排序,但不包括类似的字符串

根据数据框中的子字符串对列求和

如何更新字符串的熊猫数据框列中的子字符串

如何根据从列中获取的字符串变量对数据框的列进行排序

根据名称包含列表中的字符串选择熊猫数据框列

如何根据子字符串对名称列表进行排序?

按列中的第二个字符串对熊猫数据框进行排序

根据条件替换熊猫数据框列中的部分整数或字符串