美文网首页
如何在Pandas数据框中,将带有"千分位"(如1,299)的金

如何在Pandas数据框中,将带有"千分位"(如1,299)的金

作者: Hi子良 | 来源:发表于2018-07-05 00:21 被阅读0次

    有时会碰到小伙伴们提问了一些有趣的问题,在此向大家分享其中一个数据清洗的例子:

    某位小伙伴问到,某个Pandas数据框中的某一列,比如df['Price']这一列,该列中的每一行的值,有些是带有千分位符号(逗号)的数字字符串,比如'2,399','3,699,799'等,有些是无"千分位符"的值,比如'999'等,这些值都必须转换为int或float,才能做各种数学或聚合运算,那么,假设现在要去掉千分位(逗号),拼接,转换类型等一气呵成的操作,要如何实现呢?

    解决思路和逻辑实现其实都很简单,可以自定义一个函数convert(),先判断类型,再判断"不带逗号"或"带逗号",带逗号就利用字符串中的split()方法,以逗号做为分隔符,返回list后循环处理,再附加到1个字符串,最后返回的是用来表示金额的浮点数类型,废话我就不说了,直接上代码,假设数据框df(模拟读取csv文件后所返回的df)和数据是这样子的:

    然后搭配Pandas中特别好用的map()方法或apply()方法,并将函数convert做为参数传入,直接批次或“向量”处理了:

    PS:

    大家要特别注意apply()/applymap()/map()它们之间的异同与用法,这里使用的是Series对象的map()方法

    最后看下数据类型,也是期待中的结果,即数值型的数据类型,是不是很简单啊!

    如何在Pandas数据框中,将带有"千分位"(如1,299)的金额数据,批次转换为正确的数据类型?

    相关文章

      网友评论

          本文标题:如何在Pandas数据框中,将带有"千分位"(如1,299)的金

          本文链接:https://www.haomeiwen.com/subject/wbpsuftx.html