pandas笔记

Pandas的数据类型

Pandas基于两种数据类型: series 与 dataframe 。

Series

一个series是一个一维的数据类型,其中每一个元素都有一个标签。类似于Numpy中元素带标签的数组。其中,标签可以是数字或者字符串。

import numpy as np

import pandas as pd

s = pd.Series([1, 2, 5, np.nan, 6, 8])

print s

DataFrame

一个dataframe是一个二维的表结构。Pandas的dataframe可以存储许多种不同的数据类型,并且每一个坐标轴都有自己的标签。你可以把它想象成一个series的字典项。

创建日期索引序列

import pandas as pd
dates = pd.date_range(‘20170817‘, periods=7)

结果

    此时会产生一个日期序列 从2017-08-17开始,产生7个连续的日期

DatetimeIndex([‘2017-08-17‘, ‘2017-08-18‘, ‘2017-08-19‘, ‘2017-08-20‘,‘2017-08-21‘, ‘2017-08-22‘, ‘2017-08-23‘],
              dtype=‘datetime64[ns]‘, freq=‘D‘)

创建Dataframe,其中 index 决定索引序列,columns 决定列名[传入列表]

import pandas as pd
import numpy as np
dates = pd.date_range(‘20170817‘, periods=7)
df = pd.DataFrame(np.random.randn(7,4), index=dates, columns=[‘A‘,‘B‘,‘C‘,‘D‘])

结果

    此时会在Dataframe对象里插入7行每行4个随机数(7和4都是由index,columns的长度决定)

                   A         B         C         D
2017-08-17 -1.056218  0.131798 -0.131886  1.138259
2017-08-18  1.699503  2.494435  1.246487  0.743047
2017-08-19 -0.803859  0.911608 -0.858777 -1.790395
2017-08-20 -0.314994  0.848343 -0.563583  0.337760
2017-08-21  2.139696 -1.633749  1.210869  0.950425
2017-08-22  0.480713 -0.215890 -0.342616 -0.015152
2017-08-23  0.063328 -1.522219 -0.132829  1.352349

选择/切片

选择单独的一列,返回 Serires,与 df.A 效果相当。

df[‘A‘]

注意

  当要输出Dataframe对象的index时候们只能用

df.index

位置切片(行)

df[0:3]

索引切片(整行 由index引出)

df[‘20170817‘:‘20170819‘]

对多个轴同时通过标签进行选择(整列)

df.loc[:,[‘A‘,‘B‘]]

注意

  此处不能用

df.loc[:,[‘A‘:‘B‘]]

获得某一个具体位置的数据(传入行 列坐标)

df.loc[dates[0],‘A‘]

df.iloc[1,1]

通过位置进行选择(行)

df.iloc[3]

此时会选择 第4、5行的前两列的数据

df.iloc[3:5,0:2]

此时会选择第2 3 4行的 第1 3列数据

df.iloc[[1,2,3],[0,2]]

条件选择

布尔索引

df[df.A < 0]

获得大于零的项的数值

df[df > 0]

赋值(新增一列,索引需要和对应好 格式一致 否则会Nan)

s1 = pd.Series([1,2,3,4,5,6,7], index=pd.date_range(‘20170817‘, periods=7))
df[‘F‘] = s1

删除所有带有缺省项的行

df1.dropna()

给缺省项赋值

df1.fillna(value=100)

# 根据某一轴的索引进行排序

注意   ascending=True 升序

df.sort_index(ascending=True)

根据某一列的数值进行排序

df.sort_values(‘B‘,ascending=True)

求平均值

df.mean()

指定轴上的平均值

df.mean(1)

合并

使用 concat() 连接 pandas 对象(包左不包右)

df = pd.DataFrame(np.random.randn(10, 4))
pieces = [df[:2], df[3:4]]
df2=pd.concat(pieces)

追加

在 dataframe 数据后追加行

df = pd.DataFrame(np.random.randn(8, 4), columns=[‘A‘,‘B‘,‘C‘,‘D‘])
s = df.iloc[3]
df2=df.append(s, ignore_index=True)
ignore_index=True 即:保持原来的index

分组

分组常常意味着可能包含以下的几种的操作中一个或多个

1.依据一些标准分离数据

2.对组单独地应用函数

3.将结果合并到一个数据结构中

df = pd.DataFrame({‘A‘: [‘foo‘, ‘bar‘, ‘foo‘, ‘bar‘,
‘foo‘, ‘bar‘, ‘foo‘, ‘foo‘],
‘B‘: [‘one‘, ‘one‘, ‘two‘, ‘three‘,
‘two‘, ‘two‘, ‘one‘, ‘three‘],
‘C‘: np.random.randn(8),
‘D‘: np.random.randn(8)})

# 对单个分组应用函数,数据被分成了 bar 组与 foo 组,分别计算总和。

df.groupby(‘A‘)[‘C‘].sum() # 只显示C
df.groupby(‘A‘).sum() # 显示所有

# 依据多个列分组会构成一个分级索引

df.groupby([‘A‘, ‘B‘]).sum()

文件存储

# 从 csv 文件读取数据
pd.read_csv(‘A.csv‘)

# 保存到 csv 文件
df.to_csv(‘A.csv‘)

# 读取 excel 文件
pd.read_excel(‘A.xlsx‘, ‘Sheet1‘, index_col=None, na_values=[‘NA‘])

# 保存到 excel 文件
df.to_excel(‘A.xlsx‘, sheet_name=‘Sheet1‘)
时间: 2024-08-04 12:34:16

pandas笔记的相关文章

【学习】pandas 笔记摘要 【pandas】

本文来源于<利用python进行数据分析>中文版,大家有兴趣可以看原版,入门的东西得脚踏实地哈 1.pandas 数据结构介绍 首先熟悉它的两个主要数据结构,Series 和 DataFrame Series 是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签组成. obj = pd.Series([4, 7, -5, 3]) obj Out[4]: 0 4 1 7 2 -5 3 3 dtype: int64 Series字符串表现形成为:索引在左,值在右,可以通过Series

Python Numpy,Pandas笔记

Numpy Numpy是python的一个库.支持维度数组与矩阵计算并提供大量的数学函数库. #浮点数转int arr = np.array([1.2,1.3,1.4],[1.5,1.6,1.7])#创建ndarray时候也可以指定dtype arr.astype(dtype = np.int) #对数组批量运算,作用在每个元素上 arr = np.array([1,2,3],[4,5,6]) print arr**5 #索引和切片 arr = np.array([1,2,3,4,5,6]) p

pandas 笔记

一.axis Pandas保持了Numpy对关键字axis的用法,用法在Numpy库的词汇表当中有过解释: 轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的方向垂直往下,第1轴沿着列的方向水平延伸.如果简单点来说,就是0轴匹配的是index, 涉及上下运算:1轴匹配的是columns, 涉及左右运算. 原文地址:https://www.cnblogs.com/zongfa/p/8650210.html

pandas 学习笔记

读者只需浏览一下本文的目录结构,我相信就已经掌握了1到2成的 pandas 知识. 本文的目的是建立一个大概的知识结构 在数据挖掘python阅读源码时,断断续续查阅了些 pandas 资料,并在源码中大致感受到了 pandas 在数据清理方面的方便性. 先将自己查阅的资料结合实际应用中常用到的方式,以学习笔记的形式整理出来.不会涉及到 pandas 的所有方面,细节知识还需自行查阅官方文档. 数据结构 Series: 一维数组,与Numpy中的一维array类似.二者与Python基本的数据结

pandas库学习笔记(一)Series入门学习

Pandas基本介绍: pandas is an open source, BSD-licensed (permissive free software licenses) library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. 我们快速简单地看一下pandas中的基本数据结构,先从数据类型.索引.切片等

pandas学习笔记

引入所需要的包: import pandas as pd import numpy as np import matplotlib.pyplot as plt 一.创建对象 通过传递一个list对象来创建一个Series s = pd.Series([1,3,5,np.nan,6,8]) >>> s 0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64 通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame at

《利用python进行数据分析》读书笔记--第五章 pandas入门

pandas是本书后续内容的首选库.pandas可以满足以下需求: 具备按轴自动或显式数据对齐功能的数据结构.这可以防止许多由于数据未对齐以及来自不同数据源(索引方式不同)的数据而导致的常见错误.. 集成时间序列功能 既能处理时间序列数据也能处理非时间序列数据的数据结构 数学运算和简约(比如对某个轴求和)可以根据不同的元数据(轴编号)执行 灵活处理缺失数据 合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算 pandas数据结构介绍 两个数据结构:Series和DataFrame.Se

pandas模块学习笔记1--数据结构

pandas是基于Numpy构建的. pandas的两个主要数据结构:Series和DataFrame. Series和DataFrame用的次数非常多,将其导入本地命名空间会更方便: from pandas import Series, DataFrame 一.Series Series是一种类似于一维数组的对象,由数据和数据标签(索引)组成,创建Series: obj = Series([1,2,3]) # 该情况下会自动创建整数型索引,以0开头:索引在左边,值在右边 print(obj.i

Pandas学习笔记,字符串方法(string method)

一般语法格式Series.str.method().具体方法见http://pandas.pydata.org/pandas-docs/stable/api.html#string-handling 例如 Series.str.capitalize() 作用:Convert strings in the Series/Index to be capitalized.