pandas之sort_values排序不成功
昨天在使用pandas的sort_values进行数据排序时,发现数据无法对其排序成功,详细代码如下:
#代码来源于(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html)
import pandasas pd
import numpyas np
df= pd.DataFrame({
'col1': ['A','A','B',np.nan,'D','C'],
'col2': [2,1,9,8,7,4],
'col3': [0,1,9,4,2,3],
})
df.sort_values(by=['col1','col2'])
print(df)
数据打印结果并没有按照要求排序,如下:
![](https://img.haomeiwen.com/i8076423/35885c17de11ea41.png)
为什么没有成功呢?
原因是在于inplace参数,默认的inplace设置时False,并没有对本体进行覆盖。
解决方法分两种:
第一种:设置传值覆盖
df=df.sort_values(by=['col1','col2'])
第二种:设置本体覆盖,即设置inplace=True
df.sort_values(by=['col1','col2'],inplace=True)
以上两种均能成功,得到结果如下:
![](https://img.haomeiwen.com/i8076423/ce5c1dd159b9e4f9.png)
网友评论