import pandas as pd import matplotlib.pyplot as plt import numpy as np df = pd.read_csv('./data.csv') # 处理函数 def convert_eval(evaluation): if isinstance(evaluation, str) and "万" in evaluation: return float(evaluation.replace("万", "")) * 10000 else: return float(evaluation) #去除加号 df['评价'] = df['评价'].str.replace("+","") #去除万 df['评价'] = df["评价"].apply(convert_eval) # print(df) df = df.dropna() print(df) target_brand = "vivo" vivo_df = df[df["店铺名称"].str.contains(target_brand)] # print(vivo_df.info()) import pandas as pd import matplotlib.pyplot as plt # 创建 DataFrame 和抽取目标品牌的数据的代码在上例中已经给出,这里不再重复 # 计算每个店铺名称对应的手机均价 avg_price_by_store = vivo_df.groupby('店铺名称')['评价'].mean() print(avg_price_by_store) # 设置字体和中文显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False import matplotlib.pyplot as plt labels = avg_price_by_store.index values = avg_price_by_store # plt.pie(values, labels=labels, autopct='%1.1f%%', textprops={'fontsize': 12, 'color': 'white'}) plt.title('销售额占比图', fontsize=16) plt.legend(loc='upper right', fontsize=12) plt.show()
时间: 2024-04-03 20:35:02 浏览: 82
Python数据分析课程 包含matplotlib、numpy、pandas等知识讲解 共152页.pptx
5星 · 资源好评率100%
这段代码的作用是读取一个名为 "data.csv" 的数据文件,然后进行一些数据处理,最终绘制出一个销售额占比图。
具体来说,代码首先导入了 pandas、matplotlib.pyplot 和 numpy 这三个库,并使用 pandas 中的 read_csv() 函数读取了名为 "data.csv" 的数据文件。然后定义了一个名为 convert_eval() 的函数,用来将字符串形式的评价值转换为浮点数。该函数判断评价值是否包含 "万" 字符,如果包含,则将其替换为 "" 并乘以 10000,最终返回浮点数。接着通过调用 DataFrame 的 str.replace() 和 apply() 函数对 "评价" 列数据进行处理,将其中的 "+" 和 "万" 字符去除,并将字符串形式的评价值转换为浮点数。
代码接着对数据进行了清洗,使用 DataFrame 的 dropna() 函数删除了所有包含缺失数据的行,然后通过选取店铺名称包含 "vivo" 的行,抽取出了目标品牌 vivo 的数据。接着使用 DataFrame 的 groupby() 和 mean() 函数,计算了每个店铺名称对应的手机评价均值,并将结果存储在 avg_price_by_store 变量中。
最后,代码使用 matplotlib.pyplot 库绘制了一个饼图,将每个店铺名称的评价均值作为占比数据,店铺名称作为标签,并设置了图表的标题和字体。
阅读全文