【发布时间】:2022-01-06 16:36:07
【问题描述】:
我有一个从 1 到 4 的混合整数列表(例如 100 个这样的数字)。我想将此列表排序为(1-2-3-4-1-2-3-4 .... 1-2-3-4)。有没有一种简单的方法可以用 numpy 或 pandas 做到这一点?
[已编辑] @Corralien 的解决方案帮助了我。
import pandas as pd
df = pd.read_csv("students.csv", encoding='utf-8')
df['A'] = df['Class']
df = df.assign(B=df.groupby('A').cumcount()).sort_values(['B', 'A']).drop(columns=['A','B'])
print(df.head(20))
结果:
【问题讨论】:
-
这样排序有什么必要?似乎使用 for 循环或使用列表构造函数生成列表就足够了。
-
@IceGriffin。是的,可以使用 for 循环。但是对于庞大的列表,它会太慢
-
这个怎么样?
a = [1,2,3,4] * 50