pandas入门2

对于以下数据进行处理,索取genres字段的分类情况.
原始数据为csv格式,部分数据如图所示:
在这里插入图片描述

导入有关模块

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import json

导入数据,对整体数据有个概览

dn = pd.read_csv('D:/data/tmdb_5000_movies.csv')
print(dn.info())

在这里插入图片描述

从图中可以得知genres字段没有缺失,也就不需要对NaN值进行处理
获取genres字段,输出查看结果

dn = dn["genres"]
print(dn)

在这里插入图片描述

通过type()方法查看每行的类型,可以得知数据为json格式,接下来就要取所有不重复的类型

genres_list = list(set([i["name"] for j in dn for i in json.loads(j)]))
print(genres_list)

在这里插入图片描述

接下来对所有数据进行统计,统计的思路:
构造一个行数为所有数据个数,列数为类型数,字段名为类型的全为0的矩阵,其中每行数据(电影)包含的类型的那一列为1.
取出每部电影的genres

genres_list = []
for i in dn:
    genres = []
    for j in json.loads(i):
        genres.append(j["name"])
    genres_list.append(genres)
print(genres_list)

在这里插入图片描述

for i in range(len(dn)):
    zero_list.loc[i, genres_list[i]] = 1
print(zero_list)

在这里插入图片描述

对列求和,排序

zero_list = zero_list.sum(axis=0)
zero_list = zero_list.sort_values()
print(zero_list)

在这里插入图片描述

用matplotlib作图

my_font = font_manager.FontProperties(fname='C:/WINDOWS/FONTS/SIMKAI.TTF')
plt.figure(figsize=(20, 8), dpi=80)
# plt.bar(z)
plt.bar(range(zero_list.shape[0]), zero_list.values)
plt.xticks(range(zero_list.shape[0]), zero_list.index)
plt.xlabel("电影类别", fontproperties=my_font)
plt.ylabel("个数", fontproperties=my_font)
plt.title("5000部电影中每个类别下的电影数", fontproperties=my_font)
plt.show()
plt.savefig('./work.png')

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值