我有一个来自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
我希望它根据整数值进行排序。我该怎么办?
答案 0 :(得分:1)
CSV阅读器应该已将字符串转换为数字。您仍然可以通过df.col1=df.col1.astype(int)
修复此问题。
答案 1 :(得分:0)
如果您的数字列已被读作strinigs,则在使用数据框时,您可以使用 -
将所有列转换为int
或float
类型
df.apply(pd.to_numeric, errors='ignore')
这将尝试将所有列转换为数字,并忽略无法转换为数字的列。
编辑
使用此功能时可能需要小心。它可以更改列的dtype,它可能代表一个分类变量。