1

我需要重新排序一个 csv 文件,该文件通过从0到升序的 id 列对数据进行分组184000

不幸的是它0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3等等......我需要1, 2, 3, 1, 2, 3, 1, 2, 3等等。

等的第一个实例0, 1, 2, 3制作第一个系列第二个实例0, 1, 2, 3制作下一个等等。

有人建议使用 Python 和 Pandas,但我没有找到任何运气。

我可以读取 csv,列出列和行的数据,但找不到根据我的要求对其进行排序的方法。

我一直在看,pandas.Series但觉得我的术语错了......

所以两件事,我想做的事情叫什么,有人知道我可以使用哪种排序方法吗?

干杯,

克里斯

4

1 回答 1

2

您可以根据每个实例所属的组为每个实例添加排名,然后按排名和组对其进行排序。

df = pd.DataFrame({"group": [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3]})
df['rank'] = df.groupby('group').apply(lambda x: x.rank(method='first'))
df.sort_values(['rank', 'group'])

** 更新 **

发表评论后,您可以使用 -

df['rank'] = df.groupby('group').rank(method='first')
于 2020-11-15T09:06:16.527 回答