我想根据列对熊猫数据框进行排序,但这些值存储为字符串,但应将其视为整数。基于另一列的值对数据框进行排序,使用整数数据类型
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)