pandas 从入门到遗忘
读取大文件(内存有限):
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: int32a1 = np.array([1,2,3])a2 = np.array([4,5,6])pd.DataFrame([a1,a2],index=[1,2],columns=["a","b","c"])# 第一个参数为矩阵>>> a b c1 1 2 32 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 从入门到遗忘的更多相关文章
- Pandas简易入门(二)
目录: 处理缺失数据 制作透视图 删除含空数据的行和列 多行索引 使用apply函数 本节主要介绍如何处理缺失的数据,可以参考原文:https://www. ...
- pandas教程1:pandas数据结构入门
pandas是一个用于进行python科学计算的常用库,包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单.pandas建造在NumPy之上,它使得以NumPy为中心的应用很容 ...
- pandas快速入门
pandas快速入门 numpy之后让我们紧接着学习pandas.Pandas最初被作为金融数据分析工具而开发出来,后来因为其强大性以及友好性,在数据分析领域被广泛使用,下面让我们一窥究竟. 本文参考 ...
- Python pandas快速入门
Python pandas快速入门2017年03月14日 17:17:52 青盏 阅读数:14292 标签: python numpy 数据分析 更多 个人分类: machine learning 来 ...
- Pandas 快速入门(二)
本文的例子需要一些特殊设置,具体可以参考 Pandas快速入门(一) 数据清理和转换 我们在进行数据处理时,拿到的数据可能不符合我们的要求.有很多种情况,包括部分数据缺失,一些数据的格式不正确,一些数 ...
- [Python]Pandas简单入门(转)
本篇文章转自 https://colab.research.google.com/notebooks/mlcc/intro_to_pandas.ipynb?hl=zh-cn#scrollTo=zCOn ...
- Pandas快速入门笔记
我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下提供了类似关系型或标签型数据结构的Pandas的使用方法.下面记录相关学习笔记. 数据结构 Panda ...
- Pandas简易入门(四)
本节主要介绍一下Pandas的另一个数据结构:DataFrame,本文的内容来源:https://www.dataquest.io/mission/147/pandas-internals-dataf ...
- Pandas简易入门(三)
本节主要介绍一下Pandas的数据结构,本文引用的网址:https://www.dataquest.io/mission/146/pandas-internals-series 本文所使用的数据来自于 ...
随机推荐
- Centos7部署elasticsearch并且安装ik分词以及插件kibana
第一步 下载对应的安装包 elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch ik分词下载:https://gith ...
- PHP从入门到精通(一)
(一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于 ...
- 对于windows 10使用感受
windows 10是美国微软公司研发的新一代跨平台及设备应用的操作系统.在2015年7月29日12点起,windows 10推送全面开始,windows 7.windows 8 用户可以升级到win ...
- 小学四则运算APP 第二次冲刺 第四天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是合并后的选择题功能界面的设置: ChoiceSet.java: package c ...
- java学习--第50天讲到jquery
4月4日jquery讲完了. jquery组合选择器 逗号隔开 层级选择器 父元素 子元素,直接子元素和间接子元素,空格隔开. 直接后代选择器: 父元素>子元素 选择的直接子元素 下 ...
- 在XShell中使用sz和rz命令下载和上传文件
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器 工具/原料 XShell CentOS 6.5 使用sz下载文件 1 输 ...
- PAT 甲级 1045 Favorite Color Stripe
https://pintia.cn/problem-sets/994805342720868352/problems/994805437411475456 Eva is trying to make ...
- CentOS(6.8)7 安装 Mysql 5.7
https://blog.csdn.net/zyw_java/article/details/70949596 https://blog.csdn.net/yzl11/article/details/ ...
- 【转】Linux tail 命令详解
Linux tail 命令详解 http://www.2cto.com/os/201111/110143.html
- mybatis批量插入和批量更新
批量插入数据使用的sql语句是: insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.xml的代码如下: & ...