我想根據列對熊貓數據框進行排序,但這些值存儲爲字符串,但應將其視爲整數。基於另一列的值對數據框進行排序,使用整數數據類型
df.sort(col1)
其中col1 = ['0','1','12','13','3']
。
我該如何使用它,以便它將這些數字視爲整數而不是字符串?
我想根據列對熊貓數據框進行排序,但這些值存儲爲字符串,但應將其視爲整數。基於另一列的值對數據框進行排序,使用整數數據類型
df.sort(col1)
其中col1 = ['0','1','12','13','3']
。
我該如何使用它,以便它將這些數字視爲整數而不是字符串?
如果你要保持你的數據框不變,只是想對它進行排序...
這是假設col1
是列在您的數據幀df
選項1
df.iloc[df['col1'].astype(int).argsort()]
選項2
也可以使用pd.to_numeric
df.iloc[pd.to_numeric(df['col1']).argsort()]
選項3
更多效率可以重建操縱底層numpy的陣列
v = df.values
a = df['col1'].values.astype(int).argsort()
pd.DataFrame(v[a], df.index[a], df.columns)
您可以在排序前試試這個:
df['col1'] = df['col1'].astype(int)