昨天在使用pandas的sort_values進行數據排序時,發現數據無法對其排序成功,詳細代碼如下:
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)
數據打印結果並沒有按照要求排序,如下:
為什麼沒有成功呢?
原因是在於inplace參數,默認的inplace設置時False,並沒有對本體進行覆蓋。
解決方法分兩種:
第一種:設置傳值覆蓋
df=df.sort_values(by=['col1','col2'])
第二種:設置本體覆蓋,即設置inplace=True
df.sort_values(by=['col1','col2'],inplace=True)
以上兩種均能成功,得到結果如下: