热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式

假设有Excel文件data.xlsx,其中内容为:     ID age height    sex weight张三  1  39    181 female     85李四  2  40    180   male     80王五  3  38    178 female     78赵六  4  59    1

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

         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

 

现在需要将这个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

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

二、运用上述功能进行实战

1、先读取一个excel文件:

代码如下:

df = pd.read_excel('file:///D:/文档/Python成绩.xlsx', index_col=None, na_values=['NA'])  # 读取excel文件中的数据

如果想知道文件是否读取成功可以用print函数将数据输出

如:

print(df)

然后会显示文件的数据,效果如下:

用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式

 

 2、修改excel文件内容:

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

现在要将优秀改为90,良好改为80,及格改为60

代码如下:

1 df1=df[:]
2 df1['第二次']=df1['第二次'].map({'优秀':90,'良好':80,'及格':60})
3 df1['第三次:圆周率']=df1['第三次:圆周率'].map({'优秀':90,'良好':80,'及格':60})
4 df1['第四次:汉诺塔']=df1['第四次:汉诺塔'].map({'优秀':90,'良好':80,'及格':60})
5 df1['第五次:jieba库']=df1['第五次:jieba库'].map({'优秀':90,'良好':80,'及格':60})
6 df1['第六次:图片处理']=df1['第六次:图片处理'].map({'优秀':90,'良好':80,'及格':60})

效果如下:

用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式

三、再将上述的NaN改为0

只需要用数据清洗之缺失数据填充fillna()就可以完成

运行代码如下:

df1=df1.fillna(0)
print(df1)

效果如下:

用pandas库修改excel文件里的内容,并把excel文件格式存为csv格式,再将csv格式改为html格式

四、最后将excel文件保存为csv文件

代码如下:

df1.to_csv('D:/文档\\thon.csv')

最后会在你保存的文件你多了一个csv文件。

五、同时可以将csv文件保存为html格式

方法一(用工具实现):

  代码如下:

 df1.to_html('d:\\st.html')

同样会在你保存的文件夹中会多出一个html格式的文件

方法二:

  代码如下:

seg1 = '''
\n\n\n

2016年7月部分大中城市新建住宅价格指数

\n''' seg2 = "\n" seg3 = "
\n\n
" def fill_data(locls): seg = '{}{}{}{}\n'.format(*locls) return seg fr = open("D:\\文档\Python123.csv", "r",encoding="utf-8-sig") ls = [] for line in fr: line = line.replace("\n","") ls.append(line.split(",")) fr.close() fw = open("D:\\文档\Python5.html", "w") fw.write(seg1) fw.write('{}\n{}\n{}\n{}\n'.format(*ls[0])) fw.write(seg2) for i in range(len(ls)-1): fw.write(fill_data(ls[i+1])) fw.write(seg3) fw.close()

 


推荐阅读
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • web页面报表js下载,web报表软件 ... [详细]
  • 本文介绍了如何使用Aspose库将Office文件(如Word、PowerPoint)转换为HTML文件,并详细说明了在转换过程中可能出现的乱码问题及其解决方案。 ... [详细]
  • 本文介绍了如何在 Python 脚本中规范文件编码,并提供了在不同字符集之间进行转换的方法,特别是在处理中文字符时的注意事项。 ... [详细]
  • 本文探讨了如何在 Spring MVC 框架下,通过自定义注解和拦截器机制来实现细粒度的权限管理功能。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • Markdown 编辑技巧详解
    本文介绍如何使用 Typora 编辑器高效编写 Markdown 文档,包括代码块的插入方法等实用技巧。Typora 官方网站:https://www.typora.io/ 学习资源:https://www.markdown.xyz/ ... [详细]
  • 在OpenCV 3.1.0中实现SIFT与SURF特征检测
    本文介绍如何在OpenCV 3.1.0版本中通过Python 2.7环境使用SIFT和SURF算法进行图像特征点检测。由于这些高级功能在OpenCV 3.0.0及更高版本中被移至额外的contrib模块,因此需要特别处理才能正常使用。 ... [详细]
  • 本文介绍了 Oracle SQL 中的集合运算、子查询、数据处理、表的创建与管理等内容。包括查询部门号为10和20的员工信息、使用集合运算、子查询的注意事项、数据插入与删除、表的创建与修改等。 ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • 用C语言实现的科学计算器,支持2种常量,10种基本函数,Ans寄存器。相对来说拓展性应该是不错的,思路是首先化简复杂名称的函 ... [详细]
author-avatar
女人放聪明点碧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有