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

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. Luogu P3390 【模板】矩阵快速幂&&P1939 【模板】矩阵加速(数列)

    补一补之前的坑 因为上次关于矩阵的那篇blog写的内容太多太宽泛了,所以这次把一些板子和基本思路理一理 先看这道模板题:P3390 [模板]矩阵快速幂 首先我们知道矩阵乘法满足结合律而不满足交换律的一 ...

  2. CF1153F Serval and Bonus Problem FFT

    CF1153F Serval and Bonus Problem 官方的解法是\(O(n ^ 2)\)的,这里给出一个\(O(n \log n)\)的做法. 首先对于长度为\(l\)的线段,显然它的答 ...

  3. 干货,比较全面的c#.net公共帮助类(Common.Utility)

    Common.Utility 初衷 网上有各式各样的帮助类,公共类,但是比较零碎,经常有人再群里或者各种社交账号上问我有没有这个helper,那个helper,于是萌生了收集全部helper的念头,以 ...

  4. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  5. mysql启动后随即关闭问题解决(ibdata1文件损坏导致)

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...

  6. Freemaker的了解

    freemarket 模板技术 与web容器没什么关系 可以用struct2作为视图组件   第一步导入jar包 项目目录下建立一个templates目录 在此目录下建立一个模板文件a.ftl文件   ...

  7. 软件工程第二次程序的作业:Java计算器实验

    1.计算器实验报告 2.https://github.com/lollipopangel/test/tree/master 3.实验截图 7+8 清除 六.总结 通过本次实验让我对JFrame类.JP ...

  8. Oracle系列(一): Oracle数据恢复

     Oracle数据恢复 在使用Oracle的时候,突然一部小心update或者delete全部数据后怎么办? select * from table as of timestamp to_timest ...

  9. JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客

    JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客https://blog.csdn.net/KooKing_L/article/details/79711379

  10. java mail smtp port

    https://www.tutorialspoint.com/javamail_api/javamail_api_smtp_servers.htm https://www.mkyong.com/jav ...