本帖最后由 小陈 于 2020-12-15 18:52 编辑
学习分享
非原创 原创Java_S
本人也只是学习一下。
import pandas as pd
利用pandas库读取csv表格
df = pd.read_csv('file/douyin.csv', header=0, encoding='utf-8-sig') print(df)
读取数据,首先分析性别分布情况
def create_gender(data):#声明函数性别分析 df当作参数data传入
df = data.copy() #这里也不清楚为什么要复制一下....测试存在与不存在 效果是一样的
#loc是根据标签取出对应的数据进行相关操作
#个人理解 通过loc取出df数据中的 gender这一列 如果gender这一列的数值是 0,1,2 则分别赋值 ‘未知’,‘男性’,‘女性’。
df.loc[df.gender == '0',gender] = '未知'
df.loc[df.gender == '1',gender] = '男性'
df.loc[df.gender == '2',gender] = '女性'
#上面操作进行完之后 我们打印print(df['gender'])得到性别都是我们重新赋值过后的值
#根据性别进行分组。注:groupby进行分组之后,我们得到的是一个groupby对象,还未进行任何运算或者操作
#groupby是对DataFrame数据进行分类 我觉得....直接df.groupby('gender')也可以,就直接在df里面找gender列进行分类,不清楚为什么要+中括号
gender_messsage = df.groupby(['gender'])
#分组过后我们对分组的数据进行计数 得到DataFrame格式 未知,男性,女性分别的数量
gender_com = gender_message['gender'].agg([count])
#到这里数据处理好了 ,接下来就是饼图了,将数据加入饼图中
attr = gender_com['gender']#0,1,2,分别对应的性别类型
v1 = gender_com['count']#0,1,2分别的对应的详细数量
#进行饼图初始化配置
pie = Pie(init_opts=opts.InitOpts(width="800px", height="400px"))
# 添加数据,设置半径 radius=["40%", "75%"]设置内径外径
#[list(z) for z in zip(attr, v1)] 和添加”“,。。。。。没看懂。
pie.add("", [list(z) for z in zip(attr, v1)], radius=["40%", "75%"])
# 设置全局配置项,标题、图例、工具箱(下载图片)
pie.set_global_opts(title_opts=opts.TitleOpts(title="抖音大V性别分布情况", pos_left="center"),
legend_opts=opts.LegendOpts(orient="vertical", pos_left="left"),
toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"saveAsImage": {}}))
# 设置系列配置项,标签样式
pie.set_series_opts(label_opts=opts.LabelOpts(is_show=True, formatter="{b}:{d}%"))
pie.render("抖音大V性别分布情况.html")
#在这里调用上面饼状图的函数,讲df传参进入
create_gender(df)
其他分析后面添加。去看看相关东西去了