文章目录
1 数据(字符串)的离散化
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
# file_path = "./IMDB-Movie-Data.csv"
import os
pd.set_option('display.max_rows',None)
pd.set_option('display.max_columns',None)
file_path='F:\\python\\code'
os.chdir(file_path)
os.getcwd()
df = pd.read_csv("./IMDB-Movie-Data.csv")
print(df["Genre"].head(3))
#统计分类的列表
temp_list = df["Genre"].str.split(",").tolist() #[[],[],[]]
print(temp_list)
genre_list = list(set([i for j in temp_list for i in j]))#展开并且去除重复的值
print(genre_list)
print(temp_list[2])
#构造全为0的数组
zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)#构造len()行shape(0)数组
print(zeros_df)
for i in range(df.shape[0]): #按照行进行遍历
# zeros_df.loc[0,["Sci-fi","Mucical"]] = 1#选取1行多列
zeros_df.loc[i,temp_list[i]]=1#loc():基于标签索引;iloc基于行号索引
print(zeros_df.head(3))
#统计每个分类的电影的数量和
genre_count=zeros_df.sum(axis=0)#第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸;0每一列
#求和,1每一行求和
print(genre_count)
#排序
genre_count=genre_count.sort_values()
_x=genre_count.index
_y=genre_count.values
#画图
plt.figure(figsize=(20,80),dpi=80)
plt.bar(range(len(_x)),_y,width=0.4,color='orange')
plt.xticks(range(len(_x)),_x)
plt.show()