首页 » 网站推广 » phpcsv数字转文本技巧_pandas天天一题题目6文本转数值

phpcsv数字转文本技巧_pandas天天一题题目6文本转数值

访客 2024-10-31 0

扫一扫用手机浏览

文章目录 [+]

这是一个关于 pandas 从根本到进阶的练习题系列,来源于 github 上的 guipsamora/pandas_exercises 。
这个项目从根本到进阶,可以考验你有多么理解 pandas。

我会挑选一些题目,并且供应比原题库更多的办理方法以及更详尽的解析。

phpcsv数字转文本技巧_pandas天天一题题目6文本转数值

操持每天更新一期,希望各位小伙伴先自行思考,再查看答案。
如果对你有帮助,记得转发推举给你的好友!

phpcsv数字转文本技巧_pandas天天一题题目6文本转数值
(图片来自网络侵删)

上期文章:pandas每天一题-题目5:统计空值数量也有多种实现办法

后台回答"数据",可以下载本题数据集

如下数据:

数据描述:

此数据是订单明细表。
一个订单会包含很多明细项,表中每个样本(每一行)表示一个明细项order_id 列存在重复quantity 是明细项数量

需求:将价格列转成数值

下面是答案了

办法1

这是源项目的办理办法:

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

行3:由于定义的函数,被用在行4的Serise(一列值)的apply方法中 ,因此参数 x是每个单元格的文本。
x[1:-1] 是 python 的切片,从第二个字符取到末了,实际浸染便是去掉 $ 符号用 float 函数转成数值

点评:

这种办法不是 pandas 的风格办法2

pandas 为文本列供应了切片办法:

df['item_price'].str[1:-1]

返回的仍旧是 Series

同样地,也有方法直接转类型:

df['item_price'] = df['item_price'].str[1:-1].astype(float)df

astype(float) 即可转换类型

点评:

这种办法比起办法1更加大略直不雅观。
缺陷是须要记住 pandas 的方法,而且如果你希望加载数据的时候就做转换,那么办法1更加得当。
办法3

大部分从文件加载数据的方法都会供应一个转换的参数,让你可以在数据加载成 DataFrame 之前做类型转换:

df = pd.read_csv('chipotle.tsv', sep='\t', converters={'item_price': lambda x: float(x[1:-1])})df

行3:converters 参数供应字典,key 是列表或位置索引(比如这里可以设置4)都可以,对应一个处理函数。
此时该列的每个值都被传入函数中处理

点评:

有时候我们必须在数据转成 DataFrame 之前做精确的处理,比如身份证号码,如果加载后已经变成科学计数法,那么你是没有机会转回精确的文本。
这种解法就适宜利用

推举阅读:

Python办理Sql题目,pandas其他思路解法,原来这么大略 这个烂大街的用户消费剖析案例,我用了点不一样的pandas技巧
标签:

相关文章

Python编程从入门到精通,探索编程之美

编程已经成为现代社会的一项基本技能。Python作为一种简单易学、功能强大的编程语言,在我国教育领域备受关注。本文将从Python...

网站推广 2025-03-02 阅读1 评论0

Scum07代码编程之美与适用方法

编程已成为当今社会不可或缺的技能之一。Scum07代码作为一款经典的编程语言,在我国众多程序员中备受推崇。本文将深入解析Scum0...

网站推广 2025-03-02 阅读1 评论0

Linux环境下的前端代码运行优化与步骤

前端技术逐渐成为软件开发的核心。Linux操作系统因其稳定性、安全性、开放性等特点,成为众多开发者和企业青睐的运行环境。本文将从L...

网站推广 2025-03-02 阅读1 评论0