目录

DataFrame的创建

DataFrame基本操作

pandas之loc

pandas之iloc

pandas之布尔索引

缺失数据的处理

pandas常用统计方法


DataFrame的创建

方法一:向DataFrame传入数组

可以指定索引的名称:

方法二:通过字典传入DataFrame

DataFrame基本操作

#coding=utf-8
import pandas as pd
df = pd.read_csv("dogNames2.csv")
# print(df.head())
# print(df.info())#dataframe中排序的方法
df=df.sort_values(by="Count_AnimalName",ascending=False) #by指定需要排序的索引名称   ascending升序#Dataframe的索引和切片#--方括号写数字,表示对行进行操作
print(df[:20])   #取前20行记录#--方括号写字符串,表示对列进行操作
print(df[:20]["Row_Labels"])#先选取前20行记录,再选取Row_Labels标签对应的列

pandas之loc

df.loc 通过标签索引行数据

pandas之iloc

df.iloc 通过位置获取行数据

#loc与iloc的使用
import pandas as pd
import numpy as np
t1 = pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("WXYZ"))
#可以通过赋值更改数据
t1.loc["a","Y"]=100
print(t1)
t1.iloc[1:2,0:2]=200  #这里的冒号”:“左闭右开,只能取到索引号是1行;0、1列的数据
print(t1)

输出结果:

pandas之布尔索引

#coding=utf-8
import pandas as pd
df = pd.read_csv("dogNames2.csv")
print(df[(80<df["Count_AnimalName"])&(df["Count_AnimalName"]<100)])
#打印狗的名字使用次数大于80小于100的狗名字列表

输出结果:

注意点(当出现两个及以上的条件时):

  1. 不同条件之间必须用“&”或者“|”符号连接起来
  2. 不同条件之间必须用括号括起来

#coding=utf-8
import pandas as pd
df = pd.read_csv("dogNames2.csv")
print(df["Row_Labels"].str.split("/").tolist())
#tolist可以将series转化成list

缺失数据的处理

判断数据是否为NaN:pd.isnull(df),pd.notnull(df)

In [37]: t1
Out[37]:W    X   Y   Z
a  0.0  1.0   2   3
b  NaN  NaN   6   7
c  8.0  9.0  10  11In [38]: pd.isnull(t1)
Out[38]:W      X      Y      Z
a  False  False  False  False
b   True   True  False  False
c  False  False  False  FalseIn [44]: t1[pd.notnull(t1["W"])] #根据W列不是nan的筛选数据
Out[44]:W    X   Y   Z
a  0.0  1.0   2   3
c  8.0  9.0  10  11

处理方式1:删除NaN所在的行列dropna (axis=0, how='any', inplace=False)

In [46]: t1.dropna(axis=0)  #删除nan所在的行
Out[46]:W    X   Y   Z
a  0.0  1.0   2   3
c  8.0  9.0  10  11In [47]: t1.dropna(axis=0,how="all")  #all表示删除全部是nan的行
Out[47]:W    X   Y   Z
a  0.0  1.0   2   3
b  NaN  NaN   6   7
c  8.0  9.0  10  11In [48]: t1.dropna(axis=0,how="any",inplace=False) #any表示删除含有nan的行,默认情况下是any
Out[48]:                             #inplace=True表示原地替代,t1不用赋值也可以改变W    X   Y   Z
a  0.0  1.0   2   3
c  8.0  9.0  10  11

处理方式2:填充数据,t.fillna()

#1、填充数字
In [49]: t1
Out[49]:W    X   Y   Z
a  0.0  1.0   2   3
b  NaN  NaN   6   7
c  8.0  9.0  10  11In [51]: t1.fillna(10)
Out[51]:W     X   Y   Z
a   0.0   1.0   2   3
b  10.0  10.0   6   7
c   8.0   9.0  10  11#2、填充均值
In [54]: t1.fillna(t1.mean())
Out[54]:W    X   Y   Z
a  0.0  1.0   2   3
b  4.0  5.0   6   7
c  8.0  9.0  10  11#3、填充中位数
In [56]: t1.fillna(t1.median())
Out[56]:W    X   Y   Z
a  0.0  1.0   2   3
b  4.0  5.0   6   7
c  8.0  9.0  10  11

pandas常用统计方法

练习1:假设现在我们有一组从2006年到2016年1000部最流行的电影数据,我们想知道这些电影数据中评分的平均分,导演的人数等信息,我们应该怎么获取?

练习2:对于这一组电影数据,如果我们想rating,runtime的分布情况,应该如何呈现数据?

#统计runtime的分布情况
#coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
file_path="MDB-Movie-Data.csv"
df=pd.read_csv(file_path)#rating,runtime的分布情况
#1、选择图形,分布情况——直方图
#准备数据
runtime_data=df["Runtime (Minutes)"].values
max_runtime=runtime_data.max()
min_runtime=runtime_data.min()
#计算组数
print((max_runtime-min_runtime))
num_bin=((max_runtime-min_runtime))//5
#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(runtime_data,num_bin)plt.xticks(range(min_runtime,max_runtime+5,5))
plt.show()

结果展示:

#统计rating的分布情况
#coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
file_path="MDB-Movie-Data.csv"
df=pd.read_csv(file_path)rating_data=df["Rating"].values
max_rating=rating_data.max()
min_rating=rating_data.min()
#计算组数
print(max_rating)
print(min_rating)
#因为是不均匀分布,所以以列表的形式传入组数
_x=[min_rating]
i=min_rating   #用while循环来添加_x列表里的元素
while i < max_rating+0.5:i = i+0.5_x.append(i)
# #设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.hist(rating_data,_x)
plt.xticks(_x)  #设置X轴标签
plt.show()

结果展示:

科学数据库(Pandas)——第二节 pandas之DataFrame相关推荐

  1. 萌新向Python数据分析及数据挖掘 第二章 pandas 第一节 pandas使用基础QA 1-15

    这是油管上的一个帅哥的网课地址如下 https://www.youtube.com/watch?v=yzIMircGU5I&list=PL5-da3qGB5ICCsgW1MxlZ0Hq8LL5 ...

  2. pandas 第二章 pandas基础

    第二章 pandas基础 import numpy as np import pandas as pd import xlrd 在开始学习前,请保证pandas的版本号不低于如下所示的版本,否则请务必 ...

  3. 【Pandas总结】第二节 Pandas 的数据读取_pd.read_csv()的使用详解(非常全面,推荐收藏)

    使用pandas进行数据读取,最常读取的数据格式如下: NO 数据类型 说明 使用方法 1 csv, tsv, txt 可以读取纯文本文件 pd.read_csv 2 excel 可以读取.xls . ...

  4. 萌新向Python数据分析及数据挖掘 第二章 pandas 第二节 Python Language Basics, IPython, and Jupyter Notebooks...

    Python Language Basics, IPython, and Jupyter Notebooks In [5]: import numpy as np #导入numpy np.random ...

  5. c++控制台应用每一列数据如何对齐_Python数据分析第五节 pandas入门

    这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具.对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不 ...

  6. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的指数权重移动(滚动)平均、例如,计算某公司的多个店铺每N天(5天)的滚动销售额指数权重移动(滚动)平均

    pandas使用groupby函数计算dataframe数据中每个分组的N个数值的指数权重移动(滚动)平均(Exponential Moving Average).例如,计算某公司的多个店铺每N天(5 ...

  7. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值

    pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max).例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值 目录

  8. pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe)

    pandas使用dropna函数删除dataframe中全是缺失值的数据列(drop columns with all missing values in dataframe) 目录

  9. pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe)

    pandas使用nunique函数计算dataframe每个数据列的独特值的个数(count number of unique values in each column of dataframe) ...

最新文章

  1. C++11 :STL中的 iota ()函数
  2. 深度报告:中国将主宰5G时代?华为中兴的最大机会来了
  3. shell中$后加引号有什么用($string和$'string')
  4. music算法_Elasticsearch系列---相关性评分算法及正排索引
  5. Java8 LinkedHashMap 源码阅读
  6. STL源码剖析---迭代器失效小结
  7. 什么是ACID理论(二阶段、三阶段提交、TCC)
  8. 如何抓取html请求,怎么获取请求头
  9. 使用nosetests对webpy程序做单元测试
  10. python时间库date和datetime
  11. hadoop streaming 按字段排序与输出分割详解
  12. 为了永不停机的计算服务 | 凌云时刻
  13. Excel单个单元格内逗号分割的字符串去重
  14. (转自博客园-雲霏霏)5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task
  15. Windows 自动连接wifi的bat批处理脚本
  16. 读《微波工程(第三版)》笔记 (10:终端接负载的无耗传输线)
  17. A15处理器和m1哪个好
  18. 李元佳:漫谈 Greenplum 开源背后的动机
  19. 2019-12-03 Python3 作业 爬取豆瓣读书所有出版商信息
  20. 关于数据埋点的基础认识

热门文章

  1. BUU CTF刷题之旅(Web第一页)
  2. 苹果与华为领衔 全球科技巨头进军AI手机领域
  3. 物联网卡能否永久使用
  4. 如何在程序里写死一张图片(base64编码,OpenCV)
  5. USACO——Mixing Milk 混合牛奶
  6. r320使用ahci模式安装linux,如何开启ahci模式 ahci模式开启的方法
  7. 孤尽T31项目Day3
  8. QML 地图修改插件源码(三),Map在Plugin中设置加载地图类型
  9. 学生选课系统项目设计报告
  10. [第23课] 期望值E(X)