Pandas常用函数入门
一.Pandas
Python Data Analysis Library或Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
二.Series
Series是一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型。
1.创建
# 通过list创建Series
s1 = pd.Series([7, 3, 6, 2, 9, 5, 8])
# 通过dict创建Series
s2 = pd.Series({"a":1, "b":2, "c":3})
# 通过list创建Series,并指定index
s3 = pd.Series([5, 2, 7, 4],["a", "b", "c", "b"])

2.选取
# 获取前3个数据
s1.head(3)
# 获取后3个数据
s1.tail(3)
# 获取index为2的数据
s1[2]
# 获取1<=index<4的数据
s1[1:4]
# 获取index>3的数据
s1[s1.index>3]
# 获取数据值>5的数据
s1[s1>5]
3.增加、删除、修改
# 增加数据index=8
s1[8] = -1
# 删除数据index=3,不修改原Series
s1 = s1.drop(3)
# 对1<=index<3的数据赋值30
s1[1:3] = 30
# 对index为4,6的数据赋值50
s1[4, 6] = 50
三.DataFrame
DataFrame是二维的表格型数据结构。可以将DataFrame理解为Series的容器。
1.创建
# 通过dict创建DataFrame
data = {'name':["google", "amazon", "apple", "youtube", "oracle"], 'age':[33, 44, 11, 66, 44], "money" : [400, 200, 100, 800, 500]}
df1 = pd.DataFrame(data, columns = ["name", "age", "money"])

2.时间序列类型index
# 月
dates = pd.date_range('2017-10-08', periods = 10, freq = "M")
# 天
dates = pd.date_range('2017-10-08', periods = 10, freq = "D")
# 时
dates = pd.date_range('2017-10-08', periods = 10, freq = "H")

3.选取
# 获取前3行数据
df1.head(3)
# 获取后3行数据
df1.tail(3)
# 获取列
df1.name, df1['name'], df1[["name", "money"]]
# 获取行
df1[0:3], df1.loc[0:3]
# 同时获取行列
df1.loc[0:3, ["name", "money"]]
4.增加、删除、修改
# 增加列
df1["new"] = 6
# 删除列,不修改原DataFrame
df1 = df1.drop("new", axis = 1)
# 增加行,修改原DataFrame
df1.loc[df1.index.max() + 1] = {"name": "microsoft", "age": 70, "money": 300}
# 增加行,不修改原DataFrame
df1 = df1.append([{"name": "facebook", "age": 701, "money": 900}], ignore_index = True)
# 删除行,不修改原DataFrame
df1 = df1.drop([2])
# 修改数据
df1.loc[5,"age"] = 888
df1.loc[8:10, ["age", "money"]] = [11, 222]
5.WHERE
# 过滤数据,使用DataFrame.dtypes查看数据类型
df1[df1["age"] > 30]
df1[(df1["age"] > 30) & (df1["money"] < 600)], df1[(df1.age > 40) & (df1.money < 600)]
df1[df1["name"].isin(["amazon", "youtube"])]
6.DISTINCT
# 去重
df1.age.drop_duplicates()
df1[["age", "money"]].drop_duplicates()
7.JOIN
# 联接
df3 = pd.merge(df1, df2, how="left", left_on = "name", right_on = "name")
df3 = pd.merge(df1, df2, how="right", left_on = "name", right_on = "name")
8.GROUP BY
# 分组
df1.groupby("age")["money"].sum()
df1.groupby(["age", "name"])["money"].count()
9.ORDER BY
# 排序
df1.sort_values("age", ascending=True)
df1.sort_values(["age", "money"], ascending=[True, False])
10.UNION
# 合并
df2 = df1.copy(True)
df3 = pd.concat([df1,df2], ignore_index = True)
df3 = df1.append(df2, ignore_index = True)
11.导入和保存
Excel格式需要安装openpyxl、xlrd包
# 保存为csv格式
df1.to_csv("data.csv", encoding="utf-8")
# 从csv文件读取
df1 = pd.read_csv("data.csv")
# 保存为excel格式
df1.to_excel("data.xlsx", sheet_name = "Sheet1", encoding="utf-8")
# 从excel文件读取
df1 = pd.read_excel("data.xlsx", sheet_name = "Sheet1")
Pandas常用函数入门的更多相关文章
- pandas常用函数之shift
shift函数是对数据进行移动的操作,假如现在有一个DataFrame数据df,如下所示: index value1 A 0 B 1 C 2 D 3 那么如果执行以下代码: df.shift() 就会 ...
- pandas常用函数之diff
diff函数是用来将数据进行某种移动之后与原数据进行比较得出的差异数据,举个例子,现在有一个DataFrame类型的数据df,如下: index value1 A 0 B 1 C 2 D 3 如果执行 ...
- pandas 常用函数整理
pandas常用函数整理,作为个人笔记. 仅标记函数大概用途做索引用,具体使用方式请参照pandas官方技术文档. 约定 from pandas import Series, DataFrame im ...
- 【转载】pandas常用函数
原文链接:https://www.cnblogs.com/rexyan/p/7975707.html 一.import语句 import pandas as pd import numpy as np ...
- pandas常用函数
1. df.head(n): 显示数据前n行,不指定n,df.head则会显示所有的行 2. df.columns.values获取所有列索引的名称 3. df.column_name: 直接获取列c ...
- 整理 pandas 常用函数
1. df.head(n): 显示数据前n行,不指定n,df.head则会显示所有的行 2. df.columns.values获取所有列索引的名称 3. df.column_name: 直接获取列c ...
- 5.2 pandas 常用函数清单
文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名,0,1,2,3... names=['A', 'B', 'C'...] 自定义列 ...
- python,pandas常用函数
一.rename,更改df的列名和行索引 df=pd.DataFrame(np.arange(,).reshape(,)) print(df) print(type(df)) 结果为: <cla ...
- pandas 常用函数
随机推荐
- es6函数的rest参数和拓展运算符(...)的解析
es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来 ...
- Python数据分析(二): Numpy技巧 (2/4)
numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性. 昨天晚上发了第一 ...
- 解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题
解决方法: flashmx@ubuntu:~$ cvt # 192.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline -hsync +vsync fl ...
- ZOJ 1489 HDU1395 2^x mod n = 1 数学
2^x mod n = 1 Time Limit: 2 Seconds Memory Limit:65536 KB Give a number n, find the minimum x t ...
- iOS如何提高页面流畅度
A.提高CPU性能 对象创建1.尽量用轻量的对象代替重量的对象,比如CALayer 比 UIView 要轻量许多,如果不考虑交互事件的话,可以选择CALayer.2.Storyboard和xib加载对 ...
- SQL SERVER 根据地图经纬度计算距离函数
前些天客户提出一个这样的要求:一个手机订餐网,查询当前所在位置的5公里范围的酒店,然后客户好去吃饭. 拿到这个请求后,不知道如何下手,静静地想了一下,在酒店的表中增加两个字段,用来存储酒店所在的经度和 ...
- SerialPort如何读取串口数据并显示在TextBox上,多线程委托
namespace SerialPort { public partial class Form3 : Form { delegate void UpdateTextEventHandler(stri ...
- mysql登录出现1045错误修改方法
在cmd中输入mysql -uroot -p出现1045错误如下: ERROR 1045(28000): Access denied for user 'root'@'localhost'(using ...
- Hadoop(九)Hadoop IO之Compression和Codecs
前言 前面一篇介绍了Java怎么去查看数据块的相关信息和怎么去查看文件系统.我们只要知道怎么去查看就行了!接下来我分享的是Hadoop的I/O操作. 在Hadoop中为什么要去使用压缩(Compres ...
- JAVA提高八:动态代理技术
对于动态代理,学过AOP的应该都不会陌生,因为代理是实现AOP功能的核心和关键技术.那么今天我们将开始动态代理的学习: 一.引出动态代理 生活中代理应该是很常见的,比如你可以通过代理商去买电脑,也可以 ...