一、消费者投诉数据集
1.1 概况
数据集: 消费者投诉数据集
数据来源: https://tousu.sina.com.cn/
记录数两: 15314398
覆盖日期: 2018-01-25 ~ 2024-08-26
数据格式: csv
数据体积: 3.6 G
所含字段: 标题、投诉时间、投诉问题、投诉要求、涉诉金额、投诉对象、使用服务、链接、投诉进度、进度时间
本文声明: 科研用途; 如有问题, 加微信 372335839, 备注「姓名-学校-专业-消费者投诉」
1.2 使用价值
蔡卫星, 蒲雨琦, 李浩民. 顾客至上:消费者在线投诉的基本面预测能力研究[J]. 管理世界, 2024, 40 (05): 139-154.
消费者投诉数据集作为一种典型的另类数据(如非结构文本数据),具有多方面重要科研价值,为多学科研究和企业实践提供了新视角与有力支持:
- 丰富另类数据研究:该数据集为另类数据研究注入新活力。其数据体量庞大、时效性好、真实性强且颗粒度细,克服了传统研究依赖小样本数据的局限。通过对消费者投诉数据信息含量和投资价值的挖掘,能从数据类型和应用场景等多维度丰富相关研究文献,推动另类数据在学术领域的深入发展。
- 补充基本面预测研究:在金融领域,寻找预测基本面的有效指标意义重大。消费者投诉数据集为该研究提供了新方向。以往研究发现消费者投诉对基本面预测有影响,本数据集利用中国数据和更广泛的消费类公司数据进行拓展,并探讨异质性影响,进一步补充了基本面预测影响因素的研究文献。
- 拓展企业口碑研究:消费者投诉在很大程度上影响企业口碑。以往企业口碑研究多采用小样本实验或问卷调研,缺乏真实世界大数据支持。基于 “黑猫投诉” 平台的千万级别真实数据构建的数据集,能更准确地分析消费者投诉行为,为企业口碑相关研究提供丰富且可靠的数据支撑,拓展该领域研究深度与广度。
- 助力多主体决策研究:对监管机构而言,可通过分析投诉数据,实现官方与非官方投诉渠道联动,确定监管重点领域,提升监管效能;对金融监管部门,鉴于投诉数据对公司基本面前瞻性预测能力,纳入监测体系有助于防范金融风险,维护金融市场稳定;对上市公司,利用投诉数据能发现经营问题,改进产品和服务,提高消费者满意度与管理水平;对专业投资者,投诉数据可作为投资决策参考,辅助构建投资组合,获取更高收益。这些应用场景为研究不同主体如何利用投诉数据进行科学决策提供了实践依据
二、查看数据
2.1 读取数据
import pandas as pd
df = pd.read_csv('消费者黑猫投诉数据.csv.gz', compression='gzip')
#或 解压得到csv再读取
#df = pd.read_csv('消费者黑猫投诉数据.csv')
print('记录条数:', len(df))
df
Run
记录条数: 15314398
2.2 所含字段
for col in df.columns:
print(f' - {col}')
Run
- 标题
- 投诉时间
- 投诉问题
- 投诉要求
- 涉诉金额
- 投诉对象
- 使用服务
- 链接
- 投诉进度
- 进度时间(当前投诉进度时对应的时间)
2.3 覆盖日期
df['投诉时间'] = pd.to_datetime(df['投诉时间'])
df['进度时间'] = pd.to_datetime(df['进度时间'])
print('投诉时间: ', df['投诉时间'].min(), '~ ',df['投诉时间'].max())
print('进度时间: ', df['进度时间'].min(), '~ ',df['进度时间'].max())
Run
投诉时间: 2018-01-25 09:18:00 ~ 2024-08-26 09:54:00
进度时间: 2018-01-26 09:18:33 ~ 2024-11-12 13:00:21
2.4 筛选企业
假设你对「拼多多」感兴趣, 想筛选出涉及「拼多多」的所有投诉信息
selected_company = '拼多多'
mask1 = df['投诉对象'].fillna('').str.contains(selected_company)
mask2 = df['使用服务'].fillna('').str.contains(selected_company)
selected_df = df[mask1 | mask2]
selected_df
三、可视化
3.1 字段缺失率
import missingno as ms
import matplotlib.pyplot as plt
import platform
# 根据操作系统设置字体
plt.rcParams['font.family'] = 'SimHei' if platform.system() == 'Windows' else 'Arial Unicode MS' if platform.system() == 'Darwin' else 'sans-serif'
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
# 绘制缺失值矩阵图
ms.matrix(df)
# 显示图表
plt.show()
只有字段 使用服务 有较为严重的缺失情况,其余字段无明显缺失情况。
3.2 年度投诉量
from plotnine import *
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
#文泉驿微米黑.ttf位于代码同文件夹
font_prop = FontProperties(fname='文泉驿微米黑.ttf')
volumes = []
df['投诉时间'] = pd.to_datetime(df['投诉时间'])
df2 = df.set_index('投诉时间')
for date, y_df in df2.groupby(pd.Grouper(freq='YE')):
volumes.append(len(y_df))
data = pd.DataFrame({'year': range(2018, 2025),
'volume': volumes})
(
ggplot(data, aes(x='year', y='volume'))
+geom_bar(stat='identity')
+labs(title='黑猫投诉年度投诉量(2000-2024)',
x = '年度',
y = '投诉量(条)')
+geom_text(aes(label='volume'), # 添加数据标签
va='bottom', # 垂直对齐方式为底部(即在柱子顶部)
size=8, # 设置字体大小
format_string='{}') # 格式化字符串
+theme(figure_size=(10, 6),
text = element_text(family = font_prop.get_name(), size=14),
plot_title = element_text(family = font_prop.get_name(), size=18)
)
+scale_x_continuous(breaks=range(2018, 2025))
)