解决问题:TypeError:unsupported operand type(s) for -: ‘float‘ and ‘decimal.Decimal‘


一、现象

用Pandas 处理数据的时候,想得到增长率,没想到翻车了?

import pandas as pd

df = pd.read_csv('data.csv')

df['增长率'] =  ((df['今年'] - df['去年']) / (df['今年']))

执行一下语句发现报错
TypeError:unsupported operand type(s) for -: ‘float’ and ‘decimal.Decimal’
在这里插入图片描述

二、解决方案

df[df['今年'] == 0].head(3)

发现数据集里,有df[‘今年’]有的数据为0!!!

大家都知道分母不能为0,所以可以试下这下面的方法处理哈

def add_number(x):
	return x + 1

df['今年'] = pd.to_numeric(df['今年'], errors='coerce')
df['今年001'] = df['今年'].apply(add_number)
df.head(3)

df['增长率'] =  ((df['今年001'] - df['去年']) / (df['今年001']))
df.head(3)

解决方案:带疑问,多交流,勤动手,频思考

相关推荐

  1. XML 解析异常问题解决

    2024-04-26 23:46:03       31 阅读
  2. Edge问题解决教程

    2024-04-26 23:46:03       59 阅读
  3. 问题解决记录-pypcd

    2024-04-26 23:46:03       58 阅读
  4. 问题解决方案

    2024-04-26 23:46:03       59 阅读
  5. 20240208问题解决

    2024-04-26 23:46:03       47 阅读
  6. 解决toFixed精度问题

    2024-04-26 23:46:03       47 阅读
  7. 解决跨域问题

    2024-04-26 23:46:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 23:46:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 23:46:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 23:46:03       82 阅读
  4. Python语言-面向对象

    2024-04-26 23:46:03       91 阅读

热门阅读

  1. nodejs

    nodejs

    2024-04-26 23:46:03      40 阅读
  2. 【动态规划】Leetcode 32. 最长有效括号【困难】

    2024-04-26 23:46:03       34 阅读
  3. 启动MySQL服务

    2024-04-26 23:46:03       38 阅读