我想根据列对pandas数据帧进行排序,但这些值存储为字符串,但应将它们视为整数。
df.sort(col1)
其中col1 = ['0','1','12','13','3']
。
如何使用它以便将这些数字视为整数而不是字符串?
答案 0 :(得分: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)
答案 1 :(得分:2)
您可以在排序前尝试此操作:
df['col1'] = df['col1'].astype(int)