如何用Pandas将CSV中‘File Size’列的带单位值转为可比较数值?
解决Pandas中文件大小列的数值转换问题
1. 读取CSV文件
先导入Pandas并读取你的文件:
import pandas as pd # 替换成你的CSV文件路径 df = pd.read_csv('your_file.csv')
2. 编写转换函数统一数值单位
你可以把所有大小值统一转换为字节(最精确),或者转换为MB/GB,以下是两种实现:
转换为字节
def convert_to_bytes(size_str): # 拆分数值与单位,例如将'1.2 GB'拆分为['1.2', 'GB'] num, unit = size_str.split() num = float(num) # 定义各单位到字节的转换系数 unit_map = { 'MB': 1024 ** 2, 'GB': 1024 ** 3 } return num * unit_map[unit] # 生成新的数值列 df['File Size (Bytes)'] = df['File Size'].apply(convert_to_bytes)
转换为MB(适合直观比较)
def convert_to_mb(size_str): num, unit = size_str.split() num = float(num) if unit == 'GB': return num * 1024 elif unit == 'MB': return num df['File Size (MB)'] = df['File Size'].apply(convert_to_mb)
3. 数值比较与筛选
转换完成后就可以直接进行筛选操作,比如找出大于1000MB的文件:
large_files = df[df['File Size (MB)'] > 1000]
适合初学者的Pandas学习资源推荐
- Pandas官方入门指南:官方的Getting Started板块,从基础的文件读写、数据清洗到简单分析,内容权威且贴合实际需求。
- 实战导向的视频/文字课程:选择以真实案例为主的课程,跟着完成从数据导入到输出分析结果的完整流程,快速掌握实用技巧。
- 交互式练习平台:通过小任务巩固Pandas常用操作,比如列转换、数据筛选、分组统计等,即时反馈能帮你快速纠正错误。
内容的提问来源于stack exchange,提问作者Bongoan
相关产品推荐
相关产品推荐

