python 資料探勘-我分析了《乘風破浪的姐姐》,發現了這些祕密

bobin123發表於2020-06-26

讀取資料
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(“/home/kesci/input/sister5122/final_data.csv”, encoding=’gbk’)
df.names = [i.strip(‘\r\n’) for i in df.names]
df
age birth hometown names primaryScore jobs picUrl
0 (51歲) 1969/3/4 臺灣 伊能靜 74 歌手,演員, bkimg.cdn.bcebos.com/pic/c2fdfc039...
1 (35歲) 1984/10/15 河南 海陸 68 演員, bkimg.cdn.bcebos.com/pic/9345d688d...
2 (34歲) 1985/10/21 吉林 許飛 75 歌手, bkimg.cdn.bcebos.com/pic/f703738da...
3 (33歲) 1986/8/8 山東 張雨綺 72 演員, bkimg.cdn.bcebos.com/pic/b21c8701a...
4 (31歲) 1989/4/9 四川 張含韻 79 歌手,演員, bkimg.cdn.bcebos.com/pic/0823dd545...
5 (37歲) 1983/1/29 遼寧 吳昕 74 演員,主持人, bkimg.cdn.bcebos.com/pic/8644ebf81...
6 (35歲) 1985/3/22 內蒙古 王麗坤 72 演員, bkimg.cdn.bcebos.com/pic/37d3d539b...
7 (37歲) 1983/3/14 上海 金莎 68 歌手,演員, bkimg.cdn.bcebos.com/pic/5366d0160...
8 (30歲) 1990/4/16 上海 藍盈瑩 91 演員, bkimg.cdn.bcebos.com/pic/10dfa9ec8...
9 (37歲) 1983/2/11 上海 黃聖依 80 歌手,演員, bkimg.cdn.bcebos.com/pic/64380cd79...
10 (39歲) 1981/3/6 天津 張萌 77 演員, bkimg.cdn.bcebos.com/pic/6d81800a1...
11 (29歲) 1990/9/5 山東 金晨 80 模特,演員, bkimg.cdn.bcebos.com/pic/5bafa40f4...
12 (32歲) 1988/4/18 雲南 朱婧汐 76 歌手,音樂人, bkimg.cdn.bcebos.com/pic/728da9773...
13 (48歲) 1972/4/27 貴州 寧靜 84 演員, bkimg.cdn.bcebos.com/pic/574e9258d...
14 (30歲) 1990/2/3 湖南 孟佳 87 歌手,演員, bkimg.cdn.bcebos.com/pic/2934349b0...
15 (36歲) 1983/10/23 四川 鬱可唯 85 歌手, bkimg.cdn.bcebos.com/pic/42166d224...
16 (33歲) 1987/4/27 海南 王霏霏 84 歌手,演員, bkimg.cdn.bcebos.com/pic/267f9e2f0...
17 (42歲) 1978/4/17 湖南 阿朵 79 歌手,演員, bkimg.cdn.bcebos.com/pic/f7246b600...
18 (49歲) 1970/9/19 加拿大 鍾麗緹 78 演員, bkimg.cdn.bcebos.com/pic/ac4bd1137...
19 (38歲) 1981/9/6 上海 鄭希怡 84 歌手,演員, bkimg.cdn.bcebos.com/pic/a8014c086...
20 (30歲) 1990/4/26 四川 李斯丹妮 87 歌手,演員, bkimg.cdn.bcebos.com/pic/4e4a20a44...
21 (37歲) 1982/12/26 湖南 劉芸 74 演員, bkimg.cdn.bcebos.com/pic/d8f9d72a6...
22 (34歲) 1986/5/2 陝西 白冰 79 演員, bkimg.cdn.bcebos.com/pic/c8ea15ce3...
23 (37歲) 1982/7/29 遼寧 王智 68 演員, bkimg.cdn.bcebos.com/pic/d1160924a...
24 (33歲) 1987/2/13 上海 黃齡 89 歌手,演員, bkimg.cdn.bcebos.com/pic/4610b912c...
25 (33歲) 1986/11/14 美國 袁詠琳 83 歌手,演員, bkimg.cdn.bcebos.com/pic/060828381...
26 (38歲) 1982/4/17 浙江 丁當 75 歌手, bkimg.cdn.bcebos.com/pic/d01373f08...
27 (38歲) 1982/5/14 湖南 萬茜 77 歌手,演員, bkimg.cdn.bcebos.com/pic/5bafa40f4...
28 (31歲) 1989/6/13 湖南 沈夢辰 86 演員,主持人, bkimg.cdn.bcebos.com/pic/3801213fb...
29 (49歲) 1971/1/21 香港 陳鬆伶 73 歌手,演員, bkimg.cdn.bcebos.com/pic/b90e7bec5...
df.age = [int(i.strip().replace(‘(’, ‘’).replace(‘)’,’’).replace(‘歲’,’’)) for i in df.age.values]

from pyecharts.charts import Pie, Bar, Line, Funnel
from pyecharts.options.global_options import ThemeType
from pyecharts import options as opts

姐姐的年齡分佈
attr = []
count = []
age_cut = pd.cut(df.age, [26,33,40,47,54], labels=[u”26-33”,u”33-40”,u”40-47”,u”47-54”]) # 對年齡進行分段劃分

for i, j in age_cut.value_counts().items():
attr.append(i)
count.append(j)

pie = (Pie(init_opts=opts.InitOpts(
theme=ThemeType.CHALK
)).add(‘’, [list(z) for z in zip(attr, count)],
radius=[“30%”, “75%”],rosetype=”radius”)
.set_global_opts(title_opts=opts.TitleOpts(title=”《乘風破浪的姐姐》”, subtitle=”年齡分佈”))
.set_series_opts(label_opts=opts.LabelOpts(formatter=”{b}: {d}%”))
)
pie.render_notebook()
姐姐的職業分佈
from collections import Counter

jobsClass = Counter(filter(None, ‘’.join(df.jobs.values).split(‘,’)))

funnel = (Funnel(init_opts=opts.InitOpts(
theme=ThemeType.CHALK
))
.add(“《乘風破浪的姐姐》”, [list(z) for z in zip(jobsClass.keys(), jobsClass.values())],
sort_=’ascending’,
label_opts=opts.LabelOpts(position=”inside”))
.set_global_opts(title_opts=opts.TitleOpts(title=”《乘風破浪的姐姐》”, subtitle=”職業分佈”),)
)
funnel.render_notebook()
姐姐的省份分佈
from pyecharts.charts import Map
import random
provinces = Counter(df.hometown)
print(provinces)
area = [(i[0],i[1]) for i in provinces.items()]
maps = (
Map(init_opts=opts.InitOpts(
theme=ThemeType.ROMANTIC
))
.add(“出生地”, area, “china”)
.set_global_opts(
title_opts=opts.TitleOpts(title=”Map-基本示例”),
legend_opts=opts.LegendOpts(is_show=False),
visualmap_opts=opts.VisualMapOpts(max_=5, is_piecewise=True),
)
)

maps.render_notebook()
Counter({‘上海’: 5, ‘湖南’: 5, ‘四川’: 3, ‘山東’: 2, ‘遼寧’: 2, ‘臺灣’: 1, ‘河南’: 1, ‘吉林’: 1, ‘內蒙古’: 1, ‘天津’: 1, ‘雲南’: 1, ‘貴州’: 1, ‘海南’: 1, ‘加拿大’: 1, ‘陝西’: 1, ‘美國’: 1, ‘浙江’: 1, ‘香港’: 1})
姐姐的年齡和初始舞臺評分關係
from pyecharts import options as opts
from pyecharts.charts import Bar, Line

top5 = df[:5]
names = top5.names.values.tolist()
ages = top5.age.values.tolist()
scores = top5.primaryScore.values.tolist()

bar = (
Bar(init_opts=opts.InitOpts(
theme=ThemeType.ROMANTIC
))
.add_xaxis(names)
.add_yaxis(“年齡”, ages)
.extend_axis(
yaxis=opts.AxisOpts(
axislabel_opts=opts.LabelOpts(formatter=”{value}分”), interval=20
)
)

.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
    title_opts=opts.TitleOpts(title="《乘風破浪的姐姐》"),
    yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value}歲"), min_=0, max_=40),
)

)

line = Line().add_xaxis(names).add_yaxis(“初舞臺評分”, scores, yaxis_index=1)
bar.overlap(line)
bar.render_notebook()
姐姐的平均年齡
print(sum(ages) / 5)
36.8

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章