腾讯弹幕数据分析
数据读入
In [1]:
导入库
import os
import jieba
import numpy as np
import pandas as pd
from pyecharts.charts import Bar, Pie, Line, WordCloud, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType
import stylecloud
from IPython.display import Image # 用于在jupyter lab中显示本地图
In [2]:
读入数据
data_list = os.listdir(’…/data/’)
df_all = pd.DataFrame()
for i in data_list:
# 判断
if i.split(’.’)[-1] == ‘csv’:
print(i)
df_one = pd.read_csv(f’…/data/{i}’, engine=‘python’, encoding=‘utf-8’, index_col=0)
df_all = df_all.append(df_one, ignore_index=False)
print(df_all.shape)
第10集.csv
第11集.csv
第12集.csv
第13集.csv
第14集.csv
第15集.csv
第1集.csv
第2集.csv
第3集.csv
第4集.csv
第5集.csv
第6集.csv
第7集.csv
第8集.csv
第9集.csv
(271049, 7)
In [3]:
df_all.info()
<class ‘pandas.core.frame.DataFrame’>
Int64Index: 271049 entries, 0 to 17637
Data columns (total 7 columns):
Column Non-Null Count Dtype
0 episodes 271049 non-null int64
1 comment_id 271049 non-null int64
2 oper_name 139035 non-null object
3 vip_degree 271049 non-null int64
4 content 271049 non-null object
5 time_point 271049 non-null int64
6 up_count 271049 non-null int64
dtypes: int64(5), object(2)
memory usage: 16.5+ MB
In [4]:
df_all.head()
Out[4]:
episodes
comment_id
oper_name
vip_degree
content
time_point
up_count
0
10
6691339556383867223
NaN
5
1
27
0
1
10
6691340141707381348
沉尘
2
王漫妮 : 来了来了
28
1
2
10
6691340663373931124
NaN
5
钟晓芹 : 第一来了
29
1
3
10
6691340707249533722
NaN
2
哈哈哈哈来了
26
0
4
10
6691340998716925826
NaN
0
每天等更新
27
3
数据预处理
In [5]:
提取数据
pattern = r’(王漫妮\s*|钟晓芹\s*|顾佳\s*|陈屿\s*|许幻山\s*|飒飒*\s|浪浪*\s):.*’
df_all[‘danmu_role’] = df_all[‘content’].str.extract(pattern)[0].s