熊猫数据框,基于其整数表示对字符串数据进行分组和排序

时间:2017-08-01 17:31:43

标签: python pandas

我有一个来自csv文件的熊猫数据框,看起来大致如下:

   col1 col2
   1    12937
   10   8932
   1    9090
   11    7171
   11   12392
   3    6262
   2    9123
   11   9872
   3    4321

我想根据col1中的值对它们进行分组,我目前正在使用df.groupby('col1',sort=True)。但是,由于我从csv读取数据,因此col1是字符串格式,因此得到的排序大致如下:

    col1 col2
1:  1    12937
    1    9090
10: 10   8932
11: 11   7171
    11   12392
    11   9872
2:  2    9123  
3:  3    6262
    3    4321

我希望它根据整数值进行排序。我该怎么办?

2 个答案:

答案 0 :(得分:1)

CSV阅读器应该已将字符串转换为数字。您仍然可以通过df.col1=df.col1.astype(int)修复此问题。

答案 1 :(得分:0)

如果您的数字列已被读作strinigs,则在使用数据框时,您可以使用 -

将所有列转换为intfloat类型
df.apply(pd.to_numeric, errors='ignore')

这将尝试将所有列转换为数字,并忽略无法转换为数字的列。

编辑

使用此功能时可能需要小心。它可以更改列的dtype,它可能代表一个分类变量。