Python 熊猫的定制分类
这是我的数据帧:Python 熊猫的定制分类,python,pandas,Python,Pandas,这是我的数据帧: df1 = pd.DataFrame({'sym': ['msft', 'tsla', 'amd', 'bac'], 'close': [102, 100, 35, 30]}) 我想使用sym列的自定义顺序对df进行排序 我期望的结果如下所示: sym close 0 bac 30 1 tsla 100 2 msft 102 3 amd 35 考虑到这似乎是一个非常任意的顺序,我认为您最好的选择是添加另一列,该列表示您希望元素
df1 = pd.DataFrame({'sym': ['msft', 'tsla', 'amd', 'bac'], 'close': [102, 100, 35, 30]})
我想使用sym
列的自定义顺序对df
进行排序
我期望的结果如下所示:
sym close
0 bac 30
1 tsla 100
2 msft 102
3 amd 35
考虑到这似乎是一个非常任意的顺序,我认为您最好的选择是添加另一列,该列表示您希望元素的顺序,按这些值的顺序排序,然后从数据帧中删除该列。但是,根据数据帧的大小,这可能需要大量的工作。然后,不管怎样,对一个大数据帧进行任意排序都将是一项艰巨的工作 那么,你可以做什么:
df1['order']=[3,2,4,1]
df1.sort_values(by='order', inplace=True)
df1.drop('order', axis=1,inplace=True)
df1.reset_index(drop=True, inplace=True)
您可以使用
numpy.argsort
指定所需的顺序
试试这个:
将熊猫作为pd导入
将numpy作为np导入
df1=pd.DataFrame({'sym':['msft','tsla','amd','bac'],'close':[102100,35,30]})
df1=df1.loc[np.argsort([2,1,3,0])]。重置索引(drop=True)
打印(df1)
输出:
sym close
0 bac 30
1 tsla 100
2 msft 102
3 amd 35
你好你能解释一下定制订单背后的逻辑吗?。这不是字典顺序,那又是什么呢?这是习惯!有可能吗?看起来很武断现在没有办法做这个简单的事情
df1.loc[[3,1,0,2]].reset_index(drop=True)
Btw对那些在空闲时间帮助你的人说“只要给我一个带有这个输出的代码plz”之类的话不是很好,如果没有reset_index(drop=True)
,sym
和close
列将保持不变