加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pandas3.py 3.00 KB
一键复制 编辑 原始数据 按行查看 历史
枙义38 提交于 2024-08-11 21:47 . pandas学习3
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
df = pd.read_csv("E:/Python_huatu/python_mat.numpy.pandas/IMDB-Movie-Data.csv")
print(df.head(1))
print(df.info())
## rating,runtime的分布情况
## 直方图
runtime_data=df["Runtime (Minutes)"].values
max_runtime=runtime_data.max()
min_runtime=runtime_data.min()
## 组数
d=5
num_bins=(max_runtime-min_runtime)//d
# 设置matplotlib支持中文
font = {'family' : 'SimHei',
'weight' : 'bold',
'size' : '10'}
matplotlib.rc("font" , **font)
## 设置图形大小
plt.figure(figsize=(10,8),dpi=80)
## 直方图
plt.hist(runtime_data,num_bins,color="green")
plt.xticks(range(min_runtime,max_runtime+d,d))
## 网格
plt.grid(alpha=0.5)
##
plt.xlabel("时长")
plt.ylabel("Number of Movies")
plt.title("Histogram of Runtime")
plt.show()
#############################简易pd应用###############################
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
df = pd.read_csv("E:/Python_huatu/python_mat.numpy.pandas/IMDB-Movie-Data.csv")
## 平均值
print(df["Rating"].mean())
## 导演人数
print(len(set(df["Director"].tolist())))
print(len(df["Director"].unique()))
## 获取演员人数
temp_Actor_list=df["Actors"].str.split(",").tolist()
Actor_list=[i for j in temp_Actor_list for i in j]
Actors_num=len(set(Actor_list))
print(Actors_num)
#############################字符串离散化###############################
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
df = pd.read_csv("E:/Python_huatu/python_mat.numpy.pandas/IMDB-Movie-Data.csv")
## 统计电影类型列表,[[],[],[],[]],列表嵌套
temp_list=df["Genre"].str.split(",").tolist()
## 列表嵌套,列表展开
Genre_list=list(set([i for j in temp_list for i in j]))
## 创建全零矩阵
zeros_df=pd.DataFrame(np.zeros((df.shape[0],len(Genre_list))),columns=Genre_list)
# print(zeros_df)
## 遍历每一行,给每个电影出现分类的地方赋值为1
for i in range(df.shape[0]):
zeros_df.loc[i,temp_list[i]]=1;
print(zeros_df.head(3))
## 统计每个电影类型之和
Genre_count=zeros_df.sum(axis=0)
print(Genre_count)
## 排序,ascending=True:升序 False:降序
Genre_count.sort_values(ascending=True,inplace=True)
## 画图
_x=Genre_count.index
_y=Genre_count.values
plt.figure(figsize=(10,8),dpi=80)
plt.bar(range(len(_x)),_y,color="red")
plt.xticks(range(len(_x)),_x,rotation=45)
plt.show()
#############################数据的合并###############################
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
df1=pd.DataFrame(np.zeros((3,4)),columns=list("abcd"),index=list("ABC"))
df2=pd.DataFrame(np.ones((2,4)),columns=list("qwer"),index=list("AB"))
df3=pd.DataFrame(np.arange(9).reshape(3,3),columns=list("taw"),index=list("ABC"))
## 按行合并(join),以前面的行数为准,缺失的数据为NaN
print(df1.join(df2))
print(df2.join(df1))
## 没咋懂这个merge
## 按列合并(merge),以前面的列数为准,缺失的数据为NaN
df3.loc["B",["t","w"]]=1
print(df2)
print(df3)
merge_df=df2.merge(df3,on="w",how="outer")
print(merge_df)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化