熊猫按逻辑日对数据框进行排序

好奇地编码Foxah

在此处输入图片说明

我得到以下生成的熊猫DateFrame:如何使它正确排序?例如,进行排序以使第2天排在第1天之后,而不是第11天。如下面的第2组所示?

pp

set_levels + sort_index

问题是您的字符串被按字符串而不是数字进行排序首先将您的第一个索引级别转换为数字,然后按索引排序:

# split by whitespace, take last split, convert to integers
new_index_values = df.index.levels[1].str.split().str[-1].astype(int)

# set 'Day' level
df.index = df.index.set_levels(new_index_values, level='Day')

# sort by index
df = df.sort_index()

print(df)

           Value
Group Day       
A     0        1
      2        3
      11       2
B     5        5
      7        6
      10       4

设定

上面的演示使用此示例设置:

df = pd.DataFrame({'Group': ['A', 'A', 'A', 'B', 'B', 'B'],
                   'Day': ['Day 0', 'Day 11', 'Day 2', 'Day 10', 'Day 5', 'Day 7'],
                   'Value': [1, 2, 3, 4, 5, 6]}).set_index(['Group', 'Day'])

print(df)

              Value
Group Day          
A     Day 0       1
      Day 11      2
      Day 2       3
B     Day 10      4
      Day 5       5
      Day 7       6

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章