这是一个关于 pandas 从基础到进阶的练习题系列,来源于 github 上的 guipsamora/pandas_exercises 。这个项目从基础到进阶,可以检验你有多么了解 pandas。
我会挑选一些题目,并且提供比原题库更多的解决方法以及更详尽的解析。
计划每天更新一期,希望各位小伙伴先自行思考,再查看答案。如果对你有帮助,记得转发推荐给你的好友!
上期文章:pandas每天一题-题目5:统计空值数量也有多种实现方式
后台回复"数据",可以下载本题数据集
如下数据:
数据描述:
需求:将价格列转成数值
下面是答案了
这是源项目的解决方式:
df = pd.read_csv('chipotle.tsv', sep='\t', dtype={'order_id': str})
dollarizer = lambda x: float(x[1:-1])
df.item_price = df.item_price.apply(dollarizer)
df
点评:
pandas 为文本列提供了切片方式:
df['item_price'].str[1:-1]
同样地,也有方法直接转类型:
df['item_price'] = df['item_price'].str[1:-1].astype(float)
df
点评:
大部分从文件加载数据的方法都会提供一个转换的参数,让你可以在数据加载成 DataFrame 之前做类型转换:
df = pd.read_csv('chipotle.tsv',
sep='\t',
converters={'item_price': lambda x: float(x[1:-1])})
df
点评:
推荐阅读: