- numpy帮助我们处理数值数据
- pandas帮我们处理数值数据+其它类型的数据
- series一维,带标签数组
- dataframe二维,series容器
temp_dict = {"name":"xiaohong" ,"age":30 ,"tel":10086}
t3 = pd.Series(temp_dict)
t3
name xiaohong
age 30
tel 10086
dtype: object
pandas的切片和索引
- 切片:直接传入start,end,步长
- 索引:一个的时候直接传入序号或者index,多个的时候传入序号或者index的列表
pandas之Series的索引和值 pandas之读取外部数据
- df = pd.read_csv #读取csv文件
- pd.read_sql(sql_sentence, connection)
import pandas as pd
#pandas读取csv中的文件
df = pd.read_csv("./dogNames2.csv")
print(df[(800
pandas之Dataframe
- df.sort_values(by=“AnimalName”,ascending=False)
- by=“列的名称”,以哪一列为准
- ascending=False,从大到小排序 /True 从小到大排序
df_sorted[:100] 取前面100行数据
df[:100][" Count_AnimalName "]
- 方括号标识取行,对行进行操作
- 写字符串取列 ,对列进行操作
pandas之loc和iloc
- df.loc 通过标签索引行数据
- df.iloc 通过位置获取行数据
pandas之布尔索引
pandas之字符串方法
- df[“info”].str.split("/").tolist(): 把用“/”分割的df中的一列,并把它们返回为list
缺失数据的处理
我们的数据缺失通常有两种情况:
- 一种就是空,None等,在pandas是NaN(和np.nan一样)
- 另一种是我们让其为0
判断数据是否为NaN:pd.isnull(df) pd.notnull(df)
- 处理方式1:删除NaN所在的行列dropna (axis=0, how='any', inplace=False)
- how=‘all’:该行中element全部为nan才删除
- how=‘any’:该行中element只要有一个为nan就删除
- inplace:是否原地替换
- 处理方式2:填充数据,
- t.fillna(t.mean())
- 只用该列的中位数填充这一列t.fiallna(t.median()),t.fillna(0)
示例:假设现在我们有一组从2006年到2016年1000部最流行的电影数据,我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?
import pandas as pd
import numpy as np
file_path = "IMDB-Movie-Data.csv"
df = pd.read_csv(file_path)
# print(df.info())
print(df.head(1))
#获取平均评分
print(df["Rating"].mean())
#导演的人数
# print(len(set(df["Director"].tolist())))
print(len(df["Director"].unique()))
#获取演员的人数
temp_actors_list = df["Actors"].str.split(", ").tolist()
actors_list = [i for j in temp_actors_list for i in j]
actors_num = len(set(actors_list))
print(actors_num)
示例:对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据
import pandas as pd
from matplotlib import pyplot as plt
file_path = "./IMDB-Movie-Data.csv"
df = pd.read_csv(file_path)
# print(df.head(1))
# print(df.info())
#rating,runtime分布情况
#选择图形,直方图
#准备数据
runtime_data = df["Rating"].values
max_runtime = runtime_data.max()
min_runtime = runtime_data.min()
#计算组数
print(max_runtime-min_runtime)
num_bin = (max_runtime-min_runtime)//0.5
#设置图形的大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(runtime_data,num_bin)
_x = [min_runtime]
i = min_runtime
while i<=max_runtime+0.5:
i = i+0.5
_x.append(i)
plt.xticks(_x)
plt.show()



