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

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. BTrace 初探

    BTrace 是一款java诊断工具,在解决现场问题的时候非常有用. 今天使用的时候碰到几个坑,先记录一下. 下载下来以后直接运行报错 root@iZ2ze89756yjbvq7le6obdZ:~/b ...

  2. TRIO-basic指令--MOVEMODIFY

    Syntax: MOVEMODIFY(position) Parameters: position: Absolute position for the current move to complet ...

  3. 批量实现多台服务器之间ssh无密码登录的相互信任关系

    最近IDC上架了一批hadoop大数据业务服务器,由于集群环境需要在这些服务器之间实现ssh无密码登录的相互信任关系.具体的实现思路:在其中的任一台服务器上通过"ssh-keygen -t ...

  4. 团队作业:SRS文档-飞机大战

    本实验为团队合作项目作业的一部分:SRS文档-飞机大战 项目分工:SRS文档项目为梁JM负责完成 实验要求: 3.SRS文档(第二周,截止5月31日)              要求对所选项目进行用例 ...

  5. github 心得体会

     https://github.com/xu123/text 学习了很多知识感觉很有趣 git config :配置git git add:更新working directory中的文件至stagin ...

  6. OSGB数据压缩

    OSGB数据输出时压缩数据大小,采用如下设置 osgDB::writeNodeFile(*osgbNode, "xxx/xxxx.osgb", new osgDB::Options ...

  7. beta(3/7)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 协助后端完成历史记录接口.美食排行榜接口 完成食堂平面图的绘制 确定web端业 ...

  8. 理解java的三大特性之继承

    学习来源:http://www.cnblogs.com/chenssy/p/3354884.html default 默认权限(包权限-同一个包可以访问) private 私有(类内部可以使用,继承的 ...

  9. java的OutOfMemoryError: PermGen space实战剖析

    由Word导出为PDF,导致java.lang.OutOfMemoryError: PermGen space 永生代空间不足,导致内存溢出,用jvisualvm监控了一下,永生代默认值80~90M, ...

  10. Activiti中子流程:SubProcess,CallActiviti的区别

    子流程:SubProcess,CallActiviti的区别 https://community.alfresco.com/thread/221771-call-activiti-vs-subproc ...