读取大文件(内存有限):

import pandas as pd

reader = pd.read_csv("tap_fun_test.csv", sep=',', iterator=True)
loop = True
chunkSize = 100000
chunks = []
while loop:
try:
chunk = reader.get_chunk(chunkSize)
chunks.append(chunk)
except StopIteration:
loop = False
print("Iteration is stopped.")
df = pd.concat(chunks, ignore_index=True)
print(df.shape)

  有时会有与列数不对应的行,因此会报错加上error_bad_lines=False即可。

导入和保存数据:

读取最常见的csv和excel文件。

1
pip install xlrd xlwt openpyxl

  

pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer')  # header = None

pd.read_excel('foo.xlsx', 'Sheet1',header=0) # header = None

读取mysql数据库,在实际工作环境中最为常用.

import pandas as pd
import pymysql conn = pymysql.connect(host='127.0.0.1', \
user='root',password='123456', \
db='TESTDB',charset='utf8', \
use_unicode=True) sql = 'select GroupName from group limit 20'
df = pd.read_sql(sql, con=conn)
print(df.head()) df.to_csv("data.csv")
conn.close()

  

df.to_csv("name.csv",header=True,index=True)

df.to_excel(excel_writer, sheet_name='Sheet1', header=True, index=True)

创建对象DataFrame,Series

DataFrame 表(表也可以是一列,多了columns名), Series 一维(行或列)

pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)

pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pd.Series(np.array([1,2,3,4]),index=['a','b','c','d'])
>>>a    1
   b    2
   c    3
   d    4
   dtype: int32
 
a1 = np.array([1,2,3])
a2 = np.array([4,5,6])
pd.DataFrame([a1,a2],index=[1,2],columns=["a","b","c"])# 第一个参数为矩阵
 
>>>
   a    b   c
1   1   2   3
2   4   5   6

  

查看数据:

df.head()  df.tail()

df.index # 行索引

df.columns

df.values # 返回ndarry结构,重点

df.dtypes

df.count() # 计算每列的个数,寻找缺失值

df.T # 转置

df.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, by=None)

df.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last') # 比较有用

df.rename() # 修改列名

切片和索引:

1
2
3
4
5
6
7
8
9
df['A']  # 索引列
 
df.loc[:,"A":"C"# 通过标签来选择
 
df.iloc[:,2:] # 通过位置来选择
 
df[df>0# 通过布尔索引来选择数据
 
df.isin(values) # 返回布尔类型

  

设置:

df.index = ndarray

df.columns = ndarray

df.iloc[:,0] = ndarray

df.loc[0,:] = ndarray

 

拼接: 

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

参数说明 
objs: series,dataframe或者是panel构成的序列lsit 
axis: 需要合并链接的轴,0是行,1是列 
join:连接的方式 inner,或者outer

其他一些参数不常用,用的时候再补上说明。

拼接完了之后需要df.sort_index 或者df.sort_values 进行排序。

缺失值处理:

df.drop() # 删除行(axis=0)、列(axis=1)

df.dropna(how="any")  # 'any':如果存在任何NA值,则删除该行或列。'all':如果所有值都是NA,则删除该行或列。

df.fillna()

pd.isnull(df) # 返回布尔类型

统计:

# group by  groupby之后的数据并不是DataFrame格式的数据,而是特殊的groupby类型,size()后返回Series结果。

df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

# 数据透视表

pd.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

# 确保理解你的数据

pandas 从入门到遗忘的更多相关文章

  1. Pandas简易入门(二)

    目录:     处理缺失数据     制作透视图     删除含空数据的行和列     多行索引     使用apply函数   本节主要介绍如何处理缺失的数据,可以参考原文:https://www. ...

  2. pandas教程1:pandas数据结构入门

    pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...

  3. pandas快速入门

    pandas快速入门 numpy之后让我们紧接着学习pandas.Pandas最初被作为金融数据分析工具而开发出来,后来因为其强大性以及友好性,在数据分析领域被广泛使用,下面让我们一窥究竟. 本文参考 ...

  4. Python pandas快速入门

    Python pandas快速入门2017年03月14日 17:17:52 青盏 阅读数:14292 标签: python numpy 数据分析 更多 个人分类: machine learning 来 ...

  5. Pandas 快速入门(二)

    本文的例子需要一些特殊设置,具体可以参考 Pandas快速入门(一) 数据清理和转换 我们在进行数据处理时,拿到的数据可能不符合我们的要求.有很多种情况,包括部分数据缺失,一些数据的格式不正确,一些数 ...

  6. [Python]Pandas简单入门(转)

    本篇文章转自 https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=zCOn ...

  7. Pandas快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型或标签型数据结构的Pandas的使用方法.下面记录相关学习笔记. 数据结构 Panda ...

  8. Pandas简易入门(四)

    本节主要介绍一下Pandas的另一个数据结构:DataFrame,本文的内容来源:https://www.dataquest.io/mission/147/pandas-internals-dataf ...

  9. Pandas简易入门(三)

    本节主要介绍一下Pandas的数据结构,本文引用的网址:https://www.dataquest.io/mission/146/pandas-internals-series 本文所使用的数据来自于 ...

随机推荐

  1. Pandas简易入门(一)

    目录: 读取数据 索引 选择数据 简单运算 声明,本文引用于:https://www.dataquest.io/mission/8/introduction-to-pandas (建议阅读原文) Pa ...

  2. NB-IOT_BC95_B5常用AT指令集

    .AT+<cmd>=? 测试命令,用于向模块询问支持的设置项目. .AT+<cmd>? 读取命令,用于让模块上报某个命令代表的设置项当前的值. .AT+<cmd>= ...

  3. Jenkins持续集成构建自动化测试项目

    1.配置内容安全策略(配置一次): 1.1.构建一个自由风格的软件项目 1.2.Build Triggers:Build when job nodes start 1.3.Build:Execute ...

  4. 由一个“两次请求”引出的Web服务器跨域请求访问问题的解决方案

    http://blog.csdn.net/cnhnnyzhy/article/details/53128179 (4)Access-Control-Max-Age 该字段可选,用来指定本次预检请求的有 ...

  5. Docker容器学习梳理 - 基础环境安装

    以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...

  6. 【MOOC EXP】Linux内核分析实验八报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的切换和系统的一般执行过程 知识点 ...

  7. Android之JSON格式数据解析

    查看原文:http://blog.csdn.net/hantangsongming/article/details/42234293 JSON:JavaScript 对象表示法(JavaScript ...

  8. shell脚本第一课

    shell脚本的文件名一般是以.sh结尾,也可以以其他格式如.txt,甚至不加后缀. 脚本的第一行的#!/bin/bash表示指定脚本执行时的解析器. #!/bin/bash #文件名:test.sh ...

  9. CRM 数据查重

    2.8 小工具 · 纷享销客产品手册https://www.fxiaoke.com/mob/guide/crmdoc/src/2-8%E5%B0%8F%E5%B7%A5%E5%85%B7.html C ...

  10. Docker-Compose 安装

    1. 什么是Docker-Compose Compose项目来源于之前的fig项目,使用python语言编写,与docker/swarm配合度很高. Compose 是 Docker 容器进行编排的工 ...