代码#绘制图形分析满减优惠和形式和折扣率优惠形式 import matplotlib . pyplot as plt import re indexOne = data1['discount_rate']. astype (str). apply ( lambda x : re . findall ( '\d +:\ d +', x )!=[])#满减优惠形式的索引 indexTwo =data1('discount_rate'). astype ( str ). apply ( lambda x : re . findall ( '\d +\.\ d +', x )!=[])#折扣率优惠形式的索引 dfOne =data1.loc[indexOne,:]#取出满减优惠形式的数据 dTwo =data1.loc[indexTwo ,:]#取出折扣率优惠形式的数据 #在满减优惠形式的数据中,15天内优惠券被使用的数目 numberOne = sum (( dfOne ('date')- dfOne[ 'date_received ']). dt . days <=15) #在满减优惠形式的数据中,15天内优惠券未被使用的数目 numberTwo = len ( dfOne )- numberOne #在折扣率优惠形式的数据中,15天内优惠券被使用的数目 numberThree = sum (( dfTwo['date']- dfTwo[' date_received ']. dt . days <=15) #在折扣率优惠形式的数据中,15天内优惠券未被使用的数目 numberFour = len( dfTwo )- numberThree #绘制图形 plt . figure ( figsize =(6,3)) plt . rcParams ['font . sans-serif']=' Simhei ' plt . subplot (1,2,1) plt . pie (( numberOne , numberTwo ), autopct ='%.1f%%', pctdistance =1.4) plt . legend (['优惠券15天内被使用','优惠券15天内未被使用'], fontsize =7, loc =(0.15,0.91))#添加图例 plt . title ('满减优惠形式', fontsize =15, y =1.05)#添加标题 pit . subplot (1,2,2) plt . pie ([numberThree , numberfour ], autopct ='%.1f%%', pctdistance =1.4) plt . legend (["优惠券15天内被使用","优惠券15天内未被使用"], fontsize =7, loc =(0.15,0.91))#添加图例 plt . title ('折扣率优惠形式', fontsize =15, y =1.05) #添加标题 plt . show () 报错解决
时间: 2023-11-22 09:55:06 浏览: 62
代码中有几处拼写错误,需要进行修改:
1. 第 3 行应该是 `indexOne = data1['discount_rate'].astype(str).apply(lambda x: re.findall('\d+:\d+', x)!=[])`,即 `:` 前后没有空格。
2. 第 4 行应该是 `indexTwo = data1['discount_rate'].astype(str).apply(lambda x: re.findall('\d+\.\d+', x)!=[])`,即 `\d` 前后没有空格。
3. 第 10 行缺少一个右括号,应该是 `numberThree = sum((dfTwo['date'] - dfTwo['date_received']).dt.days <= 15)`。
4. 第 17 行缺少一个引号,应该是 `plt.legend(['优惠券15天内被使用','优惠券15天内未被使用'], fontsize=7, loc=(0.15,0.91))`。
5. 第 21 行缺少一个引号,应该是 `plt.legend(["优惠券15天内被使用","优惠券15天内未被使用"], fontsize=7, loc=(0.15,0.91))`。
修改后的代码如下:
```
import matplotlib.pyplot as plt
import re
indexOne = data1['discount_rate'].astype(str).apply(lambda x: re.findall('\d+:\d+', x)!=[]) #满减优惠形式的索引
indexTwo = data1['discount_rate'].astype(str).apply(lambda x: re.findall('\d+\.\d+', x)!=[]) #折扣率优惠形式的索引
dfOne = data1.loc[indexOne,:] #取出满减优惠形式的数据
dfTwo = data1.loc[indexTwo,:] #取出折扣率优惠形式的数据
#在满减优惠形式的数据中,15天内优惠券被使用的数目
numberOne = sum((dfOne['date'] - dfOne['date_received']).dt.days <= 15)
#在满减优惠形式的数据中,15天内优惠券未被使用的数目
numberTwo = len(dfOne) - numberOne
#在折扣率优惠形式的数据中,15天内优惠券被使用的数目
numberThree = sum((dfTwo['date'] - dfTwo['date_received']).dt.days <= 15)
#在折扣率优惠形式的数据中,15天内优惠券未被使用的数目
numberFour = len(dfTwo) - numberThree
#绘制图形
plt.figure(figsize=(6,3))
plt.rcParams['font.sans-serif'] = 'Simhei'
plt.subplot(1,2,1)
plt.pie((numberOne, numberTwo), autopct='%.1f%%', pctdistance=1.4)
plt.legend(['优惠券15天内被使用','优惠券15天内未被使用'], fontsize=7, loc=(0.15,0.91)) #添加图例
plt.title('满减优惠形式', fontsize=15, y=1.05) #添加标题
plt.subplot(1,2,2)
plt.pie([numberThree, numberFour], autopct='%.1f%%', pctdistance=1.4)
plt.legend(["优惠券15天内被使用","优惠券15天内未被使用"], fontsize=7, loc=(0.15,0.91)) #添加图例
plt.title('折扣率优惠形式', fontsize=15, y=1.05) #添加标题
plt.show()
```
阅读全文