社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python使用pandas读取Excel文件数据和预处理小案例

Python小屋 • 8 年前 • 887 次点击  

假设有Excel文件data.xlsx,其中内容为

现在需要将这个Excel文件中的数据读入pandas,并且在后续的处理中不关心ID列,还需要把sex列的female替换为1,把sex列的male替换为0。本文演示有关的几个操作。

(1)导入pandas模块

>>> import pandas as pd


(2)把Excel文件中的数据读入pandas

>>> df = pd.read_excel('data.xlsx')
>>> df
         ID  age  height     sex  weight
张三   1   39     181  female      85
李四   2   40     180    male      80
王五   3   38     178  female      78
赵六   4   59     170    male      66


(3)删除ID列

可以得到新的DataFrame:

>>> df.drop('ID', axis=1)
         age  height     sex  weight
张三   39     181  female      85
李四   40     180    male      80
王五   38     178  female      78
赵六   59     170    male      66


也可以直接在原DataFrame上原地删除:
>>> df.drop('ID', axis=1, inplace=True)
>>> df
         age  height     sex  weight
张三   39     181  female      85
李四   40     180    male      80
王五   38     178  female      78
赵六   59     170    male      66


(4)替换sex列

方法一:使用replace()方法替换sex列,得到新的DataFrame,如果指定参数inplace=True,则可以原地替换。

>>> df.replace({'female':1, 'male':0})
         age  height  sex  weight
张三   39     181    1      85
李四   40     180    0      80
王五   38     178    1      78
赵六   59     170    0      66


方法二:使用map()方法+lambda表达式,原地替换。

>>> df1 = df[:]
>>> df1['sex'] = df1['sex'].map(lambda x:1 if x=='female' else 0)
>>> df1
         age  height  sex  weight
张三   39     181    1      85
李四   40     180    0      80
王五   38     178    1      78
赵六   59     170    0      66


方法三:使用map()方法+字典,原地替换。

>>> df1 = df[:]
>>> df1['sex'] = df1['sex'].map({'female':1, 'male':0})
>>> df1
         age  height  sex  weight
张三   39     181    1      85
李四   40     180    0      80
王五   38     178    1      78
赵六   59     170    0      66


方法四:使用loc类,原地替换。

>>> df1 = df[:]
>>> df1.loc[df['sex']=='female', 'sex'] = 1
>>> df1.loc[df['sex']=='male', 'sex'] = 0
>>> df1
         age  height sex  weight
张三   39     181   1      85
李四   40     180   0      80
王五   38     178   1      78
赵六   59     170   0      66



---------相关阅读------------

明天火车回老家帮忙掰玉米,顺便陪老人过个中秋节,老家没有网络,预计3天不更新,大家可以阅读下面的有关文章,或者进入公众号菜单“最新资源”==>“历史文章分类速查表”阅读更多文章。提前祝朋友们中秋节快乐!

使用Python内置集合对象和内置函数filter()过滤无效书评

Python数据分析扩展库pandas的DataFrame排序方法小结

Pandas创建DataFrame对象的几种常用方法

Python基于用户协同过滤算法的电影推荐代码demo

Python+pandas读取Excel文件并统计演员参演电影数量

Python统计共同参演电影最多的演员组合

Python读取Excel文件统计演员参演电影



----------喜大普奔----------

1、继《Python程序设计基础》(2017年9月第5次印刷)、《Python程序设计(第2版)》(2017年9月第4次印刷)、《Python可以这样学》(2017年7月第3次印刷)系列图书之后,董付国老师新书《 Python程序设计开发宝典》已于2017年8月1日在清华大学出版社出版,并于2017年9月进行了第2次印刷。为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3


2、10月13日——15日,重庆,全国高校程序设计系列课程高级研究班,详见:全国高校程序设计系列课程高级研修班(Python)通知



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/5fP1NRk9EB
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3637