pandas 处理 excel 文件 之 Series DataFrame 篇
创建Series
import pandas as pd
#从字典创建
dict = {'id':'1','name':'dekyi','age':'29'}
s = pd.Series(dict)
print(s)
结果:
id 1
name dekyi
age 29
dtype: object#从列表创建
list = [1,'dekyi',29]
s1 = pd.Series(list,index=['id','name','age'])
print(s1)
结果:
id 1
name dekyi
age 29
dtype: object
或者不指定索引
print(pd.Series([1, 2, 3, 4]))
结果:
0 1
1 2
2 3
3 4
dtype: int64
import pandas as pd
s1 = pd.Series([1,2,3],index=[1,2,3],name='a')
s2 = pd.Series([10,20,30],index=[1,2,3],name='b')
s3 = pd.Series([100,200,300],index=[1,2,3],name='c')
#从字典形式加进DataFrame,series是列
df1 = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
print(df1)
结果:a b c
1 1 10 100
2 2 20 200
3 3 30 300
#从列表形式加进DataFrame,series是行
df2 = pd.DataFrame([s1,s2,s3])
print(df2)
结果:1 2 3
a 1 2 3
b 10 20 30
c 100 200 300特别的,如果s1,s2,s3的名字不一样,输出结果如何?
import pandas as pd
s1 = pd.Series([1,2,3],index=[1,2,3],name='a')
s2 = pd.Series([10,20,30],index=[1,2,3],name='b')
s3 = pd.Series([100,200,300],index=[2,3,4],name='c')
#从字典形式加进DataFrame,series是列
df1 = pd.DataFrame({s1.name:s1,s2.name:s2,s3.name:s3})
print(df1)
结果:a b c
1 1.0 10.0 NaN
2 2.0 20.0 100.0
3 3.0 30.0 200.0
4 NaN NaN 300.0
Series常用方法
Series.at['索引‘] 处理特定单元格,在dataframe也能用
Series.apply(函数名) ,指对其中的每个元素进行映射,即将apply的函数作用于每一个元素。
创建DataFrame
DataFrame([data, index, columns, dtype, copy]) #构造数据框
方式一:将一个{key:list[]}转换成DataFrame,其中key为列名
df = pd.DataFrame({'id':[1,2,3],'Name':['dekyi','jack','tom']})
结果:id Name
0 1 dekyi
1 2 jack
2 3 tom
方式二:DataFrame(data,columns = ['col1','col0']),data是形式为{key:list[]}的字典,columns参数-指定列的顺序,
如果columns中传入的列名找不到,不会报错,而是产生一列 NA 值。
注意:将如果以字典形式创建,key为列;如果以列表形式创建,则以行写入,index变为列表。
df = pd.DataFrame({'id':[1,2,3],'Name':['dekyi','jack','tom']},columns = ['Name','id'])
结果:Name id
0 dekyi 1
1 jack 2
2 tom 3
方式三:DataFrame(data,columns = ['col1','col0'],index=['c1','c2','c3'..])data是形式为{key:list[]}的字典,index指定行索引
df = pd.DataFrame({'id':[1,2,3],'Name':['dekyi','jack','tom']},columns = ['Name','id'],index=['c1','c2','c3'])
结果:Name id
c1 dekyi 1
c2 jack 2
c3 tom 3
获取数据:
方式一:根据列索引获取
print(df['Name'])
结果:0 dekyi
1 jack
2 tom
Name: Name, dtype: object
方式二:根据行索引获取 (ix操作:混合使用下标和名称进行选取)
#用index索引进行定位,所以参数是整型,如:df.iloc[10:20, 3:5]
print(df.iloc[1:3])
结果:Name id
c2 jack 2
c3 tom 3print(df.iloc[1:3,0])
结果:
c2 jack
c3 tom
Name: Name, dtype: object#loc还能赋值
df.loc[:,'age']=18
print(df)
结果:name age score
id
1 de 18 98
2 ji 18 87
3 yan 18 88
4 zp 18 95
5 lp 18 75
6 ko 18 84
7 dww 18 95
8 ki 18 84
9 po 18 81
10 er 18 79
11 dwee 18 95
12 tt 18 92
13 uu 18 81
14 pp 18 25#用column名和index名进行定位
print(df.loc['c1':'c3','Name'])
结果:
c1 dekyi
c2 jack
c3 tom
Name: Name, dtype: object#布尔值列表是根据某个位置的True or False 来选定,如果某个位置的布尔值是True,则选定该row
import pandas as pd
df = pd.read_excel('C:\\Users\\sjyyz\\file\\student.xls',index_col='id')
print(df)
结果:name age score
id
1 de 15 98
2 ji 25 87
3 yan 18 88
4 zp 12 95
5 lp 23 75
6 ko 21 84
7 dww 18 95
8 ki 12 84
9 po 13 81
10 er 15 79
11 dwee 35 95
12 tt 38 92
13 uu 25 81
14 pp 28 25
print(df.loc[[True]])
print(df.loc[[True,False,True]])
结果:name age score
id
1 de 15 98name age score
id
1 de 15 98
3 yan 18 88#条件布尔值
print(df.loc[df.age>18])
结果:name age score
id
2 ji 25 87
5 lp 23 75
6 ko 21 84
11 dwee 35 95
12 tt 38 92
13 uu 25 81
14 pp 28 25#通过函数得到布尔结果选定数据
#一空格一斜线是换行
students = df.loc[df.age.apply(lambda a:18<=a<30)] \
.loc[df.score.apply(lambda s:85<=s<100)]
print(students)
结果:name age score
id
2 ji 25 87
3 yan 18 88
7 dww 18 95
常用方法:
(1) reindex(index,columns,fill_value=x,method=ffill,)方法 —— 重新索引:根据index参数重新进行排序。如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行。不想用缺失值,可以用 fill_value 参数指定填充值。
(2) data.drop([‘idx1’,’idx2’],axis) —— 前面删除行,后面添加axis参数删除列。
(3) 算数运算:——补齐后运算,运算默认产生浮点型,不重叠的索引会取并集,值为 NA;如果不想这样,试试使用 add() 方法进行。
(4)data.at['行‘,’列‘]——: 访问行/列标签对的单个值
(5) data.sort_value(by='列(这里的值也可以是列表,对多个列依次排序)‘,axis=0/1,ascending=True,inplace=True) 排序 asix=0按照列排序,ascending 升/降序,inplace在当前文件操作。
(6) grouby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
(as_index的作用:当为True时会把分组的列当作索引,这样就取值的时候就复杂点。)
(7)groupby函数是基于行操作的,而agg是基于列操作的.agg可对分组后的数据进行多重统计计算。
(8)pandas自带两个方法可以直接获取最大:nlargest和最小:nsmallest
DataFrame.nsmallest(self, n, columns, keep='first') n:要检索的项目数;columns:列名或按顺序排列的名称。
pandas 处理 excel 文件 之 Series DataFrame 篇相关推荐
- Python+pandas处理Excel文件案例一则
封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): ==================== 问题描述:使用p ...
- pandas 读取excel文件
pandas 读取excel文件 一 read_excel() 的基本用法 二 read_excel() 的常用的参数: 三 示例 1. IO:路径 2. sheet_name:指定工作表名 3. h ...
- Pandas读取excel文件(pandas.read_excel)
Pandas读取excel文件[pandas.read_excel] 说明 一.pandas.read_excel函数及参数 二.io 三.sheet_name 四.header.index_col ...
- pandas输出excel文件
pandas输出excel文件 源数据:2020数学建模国赛c题附件一 将附件一的企业代号进行数据处理后将其作为excel文件保存输出 import pandas as pd import numpy ...
- python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法
python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...
- Python+Pandas读取Excel文件分析关系最好的两个演员
董老师又双叒叕送书啦,6本<Python程序设计基础与应用(第2版)> 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国 ...
- Python+pandas读取Excel文件统计最受欢迎的前3位演员
推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第11次印刷 图书详情: 配套资源: 用书教师可 ...
- Python使用pandas读取Excel文件数据和预处理小案例
假设有Excel文件data.xlsx,其中内容为 现在需要将这个Excel文件中的数据读入pandas,并且在后续的处理中不关心ID列,还需要把sex列的female替换为1,把sex列的male替 ...
- 用pandas生成excel文件示例,并调整excel的格式或样式
用pandas生成excel 当我们有特殊的需求时,比如要修改excel的行宽列宽,还有字体样式等等 需求示例 代码实现 # -*- coding: utf-8 -*- import pandas a ...
最新文章
- mysql常用语句整理
- python list add_用Python创建List对象类
- SAP CRM中间件下载equipment时遇到的一个错误
- 1.2开发文档简读,了解全貌.mp4
- 2维数组 qt_Qt编写地图综合应用11-动态添加
- 用迭代法求方程cos(y)-y=0的一个实根
- ios开发 各种字体
- 计算机校准颜色,显示器颜色校正,教您怎么校准显示器颜色
- opengl+qt+vs学习笔记1:软件下载安装以及配置
- 急需“五彩连珠”小游戏的代码
- Vista Ultimate X64 绝对正宗的激活工具
- html embed如何禁止自动播放,html embed用法
- html展示base64有长度限制,网页上的base64码太长?科普base64究竟是啥
- ElasticSearch集群黄色原因以及解决方案
- 普元云计算-一起来DIY一个人工智能实验室吧
- Flyme 6将于30日公测 魅蓝Note5有望率先尝鲜
- csv文件导入Mysql
- 如何用计算机蓝牙发送文件,怎么用蓝牙传文件
- php漂浮,【飘】【漂】:【飘浮】【漂浮】、【漂泊】【飘泊】【飘薄】
- 避坑,职场远离PUA,PUA常见的套路与话术你得了解一下!
热门文章
- fastjson的漏洞解决—2020年5月28日
- 内存和CPU占用率过高,该怎么办?
- CISCO内网客户端软件anyconnect-win安装下载
- 如何在微信小程序中实现文本换行?
- win7系统下连网络打印机打印反应很慢解决方法
- manjar强制关闭应用
- sqlserver清除换行符和回车符\r\n
- suma服务器 硬盘安装,[Server] HP DL380 G6更新esxi6.0 SATA 硬盘掉线问题
- 了解RESTful接口设计风格
- lib/python3.7/site-packages/torch/lib/../../../../libgomp.so.1: version `GOMP_4.0‘ not found (requir