import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt import seaborn as sns # 让图形在控制台打印出来 %matplotlib inline douyin = pd.read_csv("douyin.csv") douyin.columns #显示抖音前10条数据 douyin.head(10)
douyin['gender']
#显示抖音的性别 douyin.loc[3:50,"gender"]
#显示性别的数据分布 #douyin.gender.value_counts() douyin['gender'].value_counts()
douyin.info()
gender=douyin.gender.replace(to_replace={"未知":"0"}) # 抖音大v账号性别分布 gender.value_counts().plot(kind="bar")
# 切换为 seanborn 绘图模式 sns.set() sns.countplot(x=gender) # 看一下网红主要分布的国家 douyin.country.value_counts()
country = douyin.country.replace(to_replace={"China":"中国", "United States":"美国", "Hong Kong":"香港", "大韩民国":"韩国"}).value_counts()[0:12] country
# 配置汉字的显示方式 plt.rcParams["font.sans-serif"] = ["SimHei"] #显示横向的直方图 plt.barh(y=country.index,width=country.values)
douyin.country.replace(to_replace={"China":"中国", "United States":"美国", "Hong Kong":"香港", "大韩民国":"韩国"},inplace=True) #主要是中国的网红 condition = douyin['country'] == '中国' China = douyin.loc[condition] # 找出网红主要城市的分布地 China["province"].value_counts()[0:11].plot(kind="bar") plt.xticks(rotation = -60)
douyin.province.replace(to_replace={"Jjlin":"吉林", "Guandong":"广东", "Sichuan":"四川", "Hubei":"湖北", "Shananxi":"陕西", "广西壮族自治区":"广西", "内蒙古自治区":"内蒙古", "新疆维吾尔自治区":"新疆"},inplace=True) import numpy # 去掉省 def map_province(x): if x.endswith("省"): y = x.rstrip("省") return y return x map_province("黑龙江省")
# 用map 映射将数据里 字段 province 带省字的名称去掉 douyin.province = douyin.province.map(map_province) douyin.city.value_counts()[:10].plot(kind="barh")
# 看大v喜欢 什么样的视频 douyin.head(2)
douyin.category.value_counts()[:10].plot(kind="bar") plt.xticks(rotation = 0)
#最不关注的两个 douyin.category.value_counts()[-2:].plot(kind="bar") #plt.xticks(rotation = 0)
# 绘制大v的粉丝的分布情况 douyin.fans[douyin.fans<20000000] sns.distplot(douyin.fans[douyin.fans<20000000])
sns.displot(douyin.fans)
# 绘制抖音分箱的曲线分布图 data = pd.cut(x=douyin.fans.values,bins=[0,500000,1000000,2000000,5000000,10000000,1e9], labels=['--50万','50-100万','100-200','200-500','500-1000','1000以上']) data.value_counts().plot(kind="bar")
#发布最多的视频的抖音账号是哪些?TOP10 top10_videos = douyin.sort_values(by="videos",ascending=False).iloc[:10][["name","videos"]] top10_videos.set_index("name").plot(kind="bar") plt.xticks(rotation = -30)
# 查看视频数的多少与粉丝数量的关系 samples = douyin[["videos","fans"]] samples
# 查看空值 samples.isnull
# 散点图 查看视频数量和抖音数量的关系 plt.scatter(samples.videos,samples.fans)
# 查看数据分布 sns.distplot(samples.fans)
# 查看粉丝数2000万以内的分布 sns.distplot(samples.fans[samples.fans<20000000])
#查看哪些大V获取的点赞数更多? 查看点赞数量的分布 douyin.sort_values(by="likes",ascending=False)[["name",'likes']].set_index("name")[:10].plot(kind="bar")
sns.distplot(douyin.likes)
# 点赞数 小于5千万的 sns.distplot(douyin.likes.loc[douyin.likes<0.5e9])