gpt4 book ai didi

python - Pandas 按逻辑日期对数据框进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:34 29 4
gpt4 key购买 nike

enter image description here

我有以下生成的 pandas DateFrame:我怎样才能让它正确排序?例如,第 2 天排在第 1 天之后,而不是第 11 天。如下面第 2 组所示?

最佳答案

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

关于python - Pandas 按逻辑日期对数据框进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53454099/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com