如何基于其他列名排序列名?

时间:2018-12-11 13:58:35

标签: python python-3.x pandas

这是我的子集数据帧,按排序顺序显示,

我想根据数据框内的年份值进行排序,我尝试查找数据框的排名值 但没有得到预期的结果。

import pandas as pd

df = pd.read_csv('data.csv', sep=',')
df.sort_values(['Year'], inplace=True)
print(df.head())

# Output::
Year    Name    Frame
2016    Yakub   24
2016    Yakub_1 24
2017    Drag    25
2017    Drag_1  25
2017    Drag_2  25
2018    Rock    26
2018    Rock_1  26

# Applied to data
df['Order'] = df.groupby('Year', sort=False)['Year'].rank(ascending=True, method='first', axis=1)
print(df.head())

# Output ::
Year    Name    Frame   Order
2016    Yakub   24      1.0
2016    Yakub_1 24      1.5
2017    Drag    25      3.0
2017    Drag_1  25      2.5
2017    Drag_2  25      1.5
2018    Rock    26      1.0
2018    Rock_1  26      2.0


# But I want my should be in this

Year    Name    Frame   Order
2016    Yakub   24      1
2016    Yakub_1 24      1
2017    Drag    25      2
2017    Drag_1  25      2
2017    Drag_2  25      2
2018    Rock    26      3
2018    Rock_1  26      3

0 个答案:

没有答案