Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。
Pandas 名字衍生自术语 “panel data”(面板数据)和 “Python data analysis”(Python 数据分析)。
Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。
Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。
Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。
Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。
基础操作1
import pandas as pd
import numpy as np
#DataFrame 是一个series容器 行索引 index axis=0 列索引 columns axis=1
t1=pd.DataFrame(np.arange(12).reshape(3,4))
#指定行列索引 为abc 和ABCD
t1=pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("ABCD"))
print(t1)
#取指定行列
print(t1.loc["a","B"])
#取某一行
print(t1.loc["a"])
#取某一列
print(t1.loc[:,"B"])
#取多行 多列
print(t1.loc[["b","c"],["B","D"]])
print("*"*120)
#iloc 取行
print(t1.iloc[1,:])
#iloc 取列
print(t1.iloc[:,1])
#iloc 取行多列
print(t1.iloc[[1,2],[0,1]])
print("-"*120)
#pandas 读取csv文件
df=pd.read_csv("./data/MyCSV3_nan.csv")
print((pd.isnull(df)))
#删除nan的一行 取那一行不为空的部分
print(df[pd.notnull(df["c"])])
#删除全部是nan的行
print(df.dropna(axis=0,how="all"))
#删除有nan的行
print(df.dropna(axis=0,how="any"))
#df数据本身会被修改 inplace
# print(df.dropna(axis=0,how="any",inplace=true))
#填充nan 全部为0
print(df.fillna(0))
#填充nan 为均值
print(df.fillna(df.mean()))
#填充b列的nan 为均值
df["b"]=df["b"].fillna(df["b"].mean())
#nan 不会参与均值的运行 0会参与均值的运算
print(df)
基础操作1
import pandas as pd
import numpy as np
#pandas 读取csv文件
df=pd.read_csv("./data/USvideos_p.csv")
print(type(df))
# print(df)
#DataFrame 是一个series容器 行索引 index axis=0 列索引 columns axis=1
#DataFrame 可以传入一个字典
print(df.dtypes)
#显示前几行
print(df.head(2))
#显示后几行
print(df.tail(2))
#显示df的信息
print(df.info())
#简单的统计一下 只能统计数值类型
print(df.describe())
#统计喜欢人数最少的 前2几个 排序 和指定排序的方式
df=df.sort_values(by="dislikes",ascending="False")
print(df.head(2))
#取前3行
print(df[:3])
#取dislikes 列的数据
#print(df["dislikes"])
print("*"*120)
#取dislikesb不喜欢的大于300 小于416
print(df[((300<df["dislikes"])&(df["dislikes"]<416))])
print("-"*120)
#取tag |分割
print(df["tags"].str.split("|").to_list())
基础操作2
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
#pandas 读取csv文件
df=pd.read_csv("./data/imdb_top_1000.csv")
print(df.info())
#去掉时间中的 min单位
runtime_data=df["Runtime"].str.replace(" min","")
#str格式转换为int
runtime_data=runtime_data.astype('int')
max_run=runtime_data.max()
print(type(max_run))
min_run=runtime_data.min()
#"/ "就表示 浮点数除法,返回浮点结果;"//"表示整数除法。
runtime_x=((max_run-min_run)//5)
#支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
#设置图像的大小 创建一个 20 * 8 点(point)的图,并设置分辨率为 80
plt.figure(figsize=(20,8),dpi=80)
plt.hist(runtime_data,runtime_x)
plt.xticks(range(min_run,max_run+5,5))
plt.show()