Pandas DataFrame 使用技巧
Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。Pandas是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas的目标是成为 Python数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas离这个目标已经越来越近了。
接下来是在使用Pandas处理数据时的一些小技巧,也许能在日常工作数据处理中帮助提高效率:
首先创建一个DataFrame:
import pandas as pd
df = pd.DataFrame([{'a':1, 'b':2, 'c':3}]).T.reset_index()
df.columns = ['label','value']
df
1 添加进度条(tqdm)
from tqdm import tqdm
tqdm.pandas(desc="Process Bar")
df['pair'] = df.progress_apply(lambda x: (x['label'],x['value']), axis=1)
df
tqdm在其他循坏体种也可以展示进度,以下是一个简单例子:
for i in tqdm(range(5)):print(i)
2 一列拓展多列
df[['label_2','_value_2']] = df.apply(lambda x: x['pair'], axis=1, result_type='expand')
df
虽然pd.DataFrame和pd.Series两种数据结构在apply方法的使用上很相似,但是axis
,result_type
这些参数仅适用于pd.DataFrame。
3 dask并行计算
import dask.dataframe as dd
from dask.diagnostics import ProgressBar
ddf = df.copy()with ProgressBar(): # 添加进度条ddf[['label_3','_value_3']] = dd.from_pandas(ddf, npartitions=8).map_partitions(lambda df: \df.apply(lambda x: x['pair'], axis=1, result_type="expand"), meta={0:'str',1:'f8'}).compute()
ddf
dask能够使pandas的DataFrame批量进行计算时采用多内核并行计算,充分利用CPU资源以提高运行速度。
① ProgressBar可为计算提供进度条。
② npartitions
为并行计算线程数,一般为计算机核心数。
③ 用dask的apply函数并设置result_type="expand"
时,需要一个meta
字典,用于明确每个列的数据类型,例如str
, int
或者 f8
。
4 保存CSV乱码问题
当我们想要将DataFrame保存成csv文件时,如果其中有中文那么经常会发现打开后乱码。例如上面这个DataFrame,我们用df.to_csv('data.csv')
进行文件保存,打开后发现变成了这样:
保存文件时通过增加encoding='utf_8_sig'
指定编码格式,即可轻松解决这个问题。
df.to_csv('data.csv', encoding='utf_8_sig')
Pandas DataFrame 使用技巧相关推荐
- 25个Pandas最实用技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | 深度学习这件小事 0. 准备工作 首先我们需要 ...
- 蠎周刊418 ~Pandas DataFrame: 使处理数据令人愉快
原文: PyCoder's Weekly - Issue #418 200429 Zoom.Quiet(大妈) 用时 42 分钟 完成快译 200429 Zoom.Quiet(大妈) 用时 37 分钟 ...
- pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format)
pandas使用tabulate函数将pandas dataframe以类似于plsql表格的方式打印出来(printing dataframe in tabular format) 目录
- python将scikit-learn自带数据集转换为pandas dataframe格式
python将scikit-learn自带数据集转换为pandas dataframe格式 目录 python将scikit-learn自带数据集转换为pandas dataframe格式 #仿真数据
- pandas基于条件判断更新dataframe中所有数据列数值内容的值(Conditionally updating all values in pandas Dataframe )
pandas基于条件判断更新dataframe中所有数据列数值内容的值(Conditionally updating all values in pandas Dataframe ) 目录
- pandas基于条件判断更新dataframe中特定数据列数值内容的值(Conditionally updating values in specific pandas Dataframe )
pandas基于条件判断更新dataframe中特定数据列数值内容的值(Conditionally updating values in specific pandas Dataframe ) 目录
- pyspark dataframe数据连接(join)、转化为pandas dataframe、基于多个字段删除冗余数据
pyspark dataframe数据连接(join).转化为pandas dataframe.基于多个字段删除冗余数据 目录 pyspark dataframe数据连接(join).转化为panda ...
- plotly可视化表格数据:以表格可视化pandas dataframe
plotly可视化表格数据:以表格可视化pandas dataframe # plotly可视化dataframe中的表格数据: import plotly as py from plotly.too ...
- python将pandas dataframe内容写入ElasticSearch实战
python将pandas dataframe内容写入ElasticSearch实战 目录 python将pandas dataframe内容写入ElasticSearch实战 索引设置 数据写入 数 ...
最新文章
- YARN中的失败分析
- 安卓 Handler使用方法
- QQ for Linux下载、安装、运行、卸载
- 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook
- 最常见的Web服务器市场份额
- 【NLP】用腻了 CRF,试试 LAN 吧?
- python读取pdf内容转word_卧槽!Pdf转Word用Python轻松搞定!
- python:植物大战僵尸源代码
- 从音箱入门到高手必看知识(一)—— 音箱初级知识
- 解决[“usingcomponents“][“van-button“]: “@vant/weapp/button/index“ 未找到:
- 神经网络训练算法的调用,人工神经网络训练案例
- Web 前端必会的 PhotoShop 技能
- 如何安装正版的Xmanager
- 在米帝求学的你,知道每个州的圣诞节特色活动吗!
- Silvaco 学习笔记——solar(太阳能电池标准分析)
- Unity简单几行代码让玩家水平移动更丝滑真实
- Linux C获取本机IP
- ListView根据字母排列——仿照微信联系人
- oracle的rowid和rownumber
- SSH CA Host Key实验
热门文章
- c语言难学吗?怎么学C语言?
- 腾讯云神笔低代码平台的申请没通过,只能等公测了
- 〖Python 数据库开发实战 - Python与MySQL交互篇⑯〗- 项目实战 - 实现用户管理 - 新增用户功能
- 机器学习中用到的概率知识_学习机器学习前,你首先要掌握这些概率论基础知识...
- 房贷还款方式等额本息等额本金比较和这两种提前还款的区别
- 两代荣耀Magic历史性同框,荣耀Magic 2如何践行科技理想主义?
- Yuga Labs 收购 CryptoPunks 的始末
- 魔百盒CM201-1、CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包
- uos命令_UOS新手入门:键盘和语言的设置方法
- oracle12c 重启服务,OBIEE12c的服务启动/关闭命令