当前位置: 首页 > 面试题库 >

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

澹台鸿熙
2023-03-14
问题内容

我想对以下数据框进行排序:

Region           LSE          North      South
0                   Cn     33.330367   9.178917
1               Develd     -36.157025 -27.669988
2               Wetnds    -38.480206 -46.089908
3                Oands    -47.986764 -32.324991
4               Otherg    323.209834  28.486310
5                 Soys      34.936147   4.072872
6                  Wht     0.983977 -14.972555

我想对它进行排序,以便根据列表对LSE列进行重新排序:

lst = ['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht']

当然,其他列也需要相应地重新排序。有没有办法在熊猫里做到这一点?


问题答案:

Categoricalpandas0.15版中对s的改进支持使您可以轻松做到这一点:

df['LSE_cat'] = pd.Categorical(
    df['LSE'], 
    categories=['Oands','Wetnds','Develd','Cn','Soys','Otherg','Wht'], 
    ordered=True
)
df.sort('LSE_cat')
Out[5]: 
   Region     LSE       North      South LSE_cat
3       3   Oands  -47.986764 -32.324991   Oands
2       2  Wetnds  -38.480206 -46.089908  Wetnds
1       1  Develd  -36.157025 -27.669988  Develd
0       0      Cn   33.330367   9.178917      Cn
5       5    Soys   34.936147   4.072872    Soys
4       4  Otherg  323.209834  28.486310  Otherg
6       6     Wht    0.983977 -14.972555     Wht

如果这只是临时排序,则Categorical可能不希望将LSE列保留为a
,但是如果您希望这种排序能够在不同的上下文中使用几次,Categoricals则是一个很好的解决方案。

在更高版本的pandas,中sort,已被替换为sort_values,因此您需要:

df.sort_values('LSE_cat')


 类似资料:
  • 问题内容: 我有一个熊猫数据框,如下所示: 我想按它排序,但该列只是一个。 我试图将列设置为日期对象,但是遇到了一种格式不需要的格式的问题。所需的格式为等。 因此,现在我试图找出如何使numpy将“美国”日期转换为ISO标准,以便可以使它们成为日期对象,以便可以对它们进行排序。 我该如何将这些美国日期转换为ISO标准,或者我在熊猫中缺少更直接的方法? 问题答案: 您可以用来转换为日期时间对象。它带

  • 问题内容: 如果我有一个包含以下列的数据框: 我想说:这是一个数据框,请给我列出对象类型或日期时间类型的列的列表吗? 我有一个将数字(Float64)转换为两位小数的函数,并且我想使用此数据框列的特定类型的列表,并通过此函数运行它以将它们全部转换为2dp。 也许: 问题答案: 如果您想要某种类型的列的列表,可以使用:

  • 问题内容: 我有一个具有以下内容的Series对象: 问题陈述: 我想按月显示它,并计算每个月的平均价格,然后按月以排序的方式显示它。 所需输出: 我想到了制作列表并将其传递给sort函数的方法: 但是 sort_values 不支持序列化。 我有一个大问题是,即使 最初可以工作,但是在我做完之后,它并不能保持排序后的顺序。 总而言之,我需要从初始数据帧起这两列。对datetime列进行排序,并使

  • 我有一个,有200多列。问题在于订单生成时 我需要对这些列进行如下排序: 我有办法在Python中做到这一点吗?

  • 我有一个像这样的数据框- 我有一个这样的列表- 现在,我想根据列名列表对数据框进行排序 因此,新的数据框将有列名称-

  • 如果我有一个包含以下列的数据帧: 我想能够说:这里是一个数据框,给我一个列的列表,它是类型Object还是类型DateTime? 我有一个将数字(Float64)转换为两位小数的函数,我想使用这个特定类型的dataframe列列表,并通过这个函数将它们全部转换为2dp。 也许 吧: