python - Pandas 格式化大数
问题描述
我有以下数据框:
product price
0 a 100000
1 b 2000000
2 c 30000000000
我想将价格列转换为以下格式
product price
0 a 100K
1 b 2M
2 c 30B
解决方案
从how-to-convert-a-values-like-1225002-to-1-2m-in-a-column-using-pandasapply
扩展答案,您可以使用lambda
并f-string
获得所需的输出
df['price']=df['price'].apply(lambda x: f'{x//1000000000}B' if x/1000000000>=1 else f'{x//1000000}M' if x/1000000>=1 else f'{int(x//1000)}K' if x/10000>=1 else f'{x}')
输出:
product price
0 a 100K
1 b 2M
2 c 30B
推荐阅读
- apache-kafka - 如何从kafka中的__consumer_offsets主题中找到消费者主题和组id?
- laravel - Laravel Role HasMany 关系
- php - 如何在 magento 2 的可配置产品页面上添加自定义 phtml 文件
- amazon-web-services - 未调用 AWS API Gateway 自定义授权方
- c++ - 通过霓虹灯实现灰度图像的opencv均值函数
- docker - Docker 步骤结果到日志文件 - Jenkins
- c# - Bamboo 显示测试用例为 0,即使应用程序中有测试用例
- javascript - 给定一个整数数组返回正数,其中存在等效的负数
- elasticsearch - Elasticsearch 中的一个自定义分析器中的多个标记器
- android - 当应用程序在 Oreo 的前台时启动服务时出现 IllegalStateException