基于python,使用熊猫对下行数据帧进行排序:
鉴于:
导入数据帧中的
作为pd进口熊猫
d={'x':[2,3,1,4,5],
‘y’:[5,4,3,2,1],
字母:[a',a',b',b',c']
df=数据帧(d)
df然后看起来像这样:
df:
字母x y
0 a 2 5
1 a 3 4
2 b 1 3
3 b 4 2
4 c 5 1
我想要一些类似于:
f=lambda x,y:x**2+y**2
test=df.sort(f('x','y'))
这将根据列“x”和“y”的平方值之和对完整的数据帧进行排序,并给出:
测试:
字母x y
2 b 1 3
3 b 4 2
1 a 3 4
4 c 5 1
0 a 2 5
升序或降序并不重要。有没有一个简单的好方法?我还没有找到解决办法
您可以创建一个临时列用于排序,然后将其删除:
df.assign(f=df['one']**2+df['two']**2)。对值('f')进行排序。drop('f',轴=1)
输出:
信一二
2 b 1 3
3 b 4 2
1 a 3 4
4 c 5 1
0 a 2 5