作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个这样的数据框:
id String
1 345 -456 -13 879
2 158 -926 -81 249 35 -4 -53 9
3 945 -506 -103
我想像这样按降序排序
id String
1 879 345 -13 -457
2 249 158 35 9 -4 -53 -81 -926
3 945 -103 -506
我试过这个:
df['string'] = df['string'].str.split(' ').map(lambda x: ' '.join(sorted(x)))
上面的函数做了某种排序,但不是我想要的方式。
最佳答案
首先需要将值转换为整数,排序,然后再转换回字符串:
f = lambda x: ' '.join(map(str, sorted(map(int, x), reverse=True)))
#another solution
#f = lambda x: ' '.join(str(z) for z in sorted((int(y) for y in x), reverse=True))
df['string'] = df['string'].str.split().map(f)
print (df)
id string
0 1 879 345 -13 -456
1 2 249 158 35 9 -4 -53 -81 -926
2 3 945 -103 -506
或者:
f = lambda x: ' '.join(map(str, sorted(map(int, x.split()), reverse=True)))
df['string'] = df['string'].map(f)
关于python - 如何对 pandas 中的字符串中的数字进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56036178/
我是一名优秀的程序员,十分优秀!