我有一个类似以下的数据框(df1):
col1 val
0 A AX
1 A 2
2 A 11
3 A 13
4 A BX
5 A 20
我想选择最小值的行。因此我写了以下内容:
df2 = df1.groupby(['col1'])['val'].min()
我从中获得的输出是,
col1
A 11
Name: Level, dtype: object
似乎值AX,BX导致它将其作为对象读取。因此,它正在进行排序并找到' 11'至少。如何修改它,以便它可以进行数字排序和输出?
A 2
提前致谢。
答案 0 :(得分:3)
首先需要将列转换为数字,因为min
使用字符串nice并返回具有最低ASCII值的字符:
df2 = pd.to_numeric(df1['val'], errors='coerce').groupby(df1['col1']).min().astype(int)
print (df2)
col1
A 2
Name: val, dtype: int32
有关字符串中min
的更多信息,请here。