栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据科学库(HM)(Day4)——pandas学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据科学库(HM)(Day4)——pandas学习

pandas
  • numpy帮助我们处理数值数据
  • pandas帮我们处理数值数据+其它类型的数据 
pandas的常用数据类型
  • series一维,带标签数组
  • dataframe二维,series容器
pandas之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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号