我有一个数据集,希望对其进行排序并根据排序结果赋予排名。
假设该数据集有两列,一列是年份,另一列是我想要排序的列。
import pandas as pd
data = {'year': pd.Series([2006, 2006, 2007, 2007]),
'value': pd.Series([5, 10, 4, 1])}
df = pd.DataFrame(data)
我希望能按照每年对'值'列进行排序,并对其进行排名。我的期望是:
data2= {'year': pd.Series([2006, 2006, 2007, 2007]),
'value': pd.Series([10, 5, 4, 1]),
'rank': pd.Series([1, 2, 1, 2]}
df2=pd.DataFrame(data2)
>>> df2
rank value year
0 1 10 2006
1 2 5 2006
2 1 4 2007
3 2 1 2007
transform
吗?使用df.groupby('year')['value'].rank()
不会达到同样的效果吗? - itzy