文章目录
- 一、现象
- 二、解决方案
一、现象
用Pandas 处理数据的时候,想得到增长率,没想到翻车了?
import pandas as pddf = 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 + 1df['今年'] = pd.to_numeric(df['今年'], errors='coerce')
df['今年001'] = df['今年'].apply(add_number)
df.head(3)df['增长率'] = ((df['今年001'] - df['去年']) / (df['今年001']))
df.head(3)
解决方案:带疑问,多交流,勤动手,频思考