首页 > 其他分享 >Pandas模块

Pandas模块

时间:2023-11-10 15:38:00浏览次数:26  
标签:index name df dtype object NaN 模块 Pandas

1 Pandas基础

1.1 数据结构

1.1.1 Series 一维

#创建
#1.列表创建
>>> pd.Series(['a','b','c','d'])
0    a
1    b
2    c
3    d
dtype: object
#2.设置索引index
>>> pd.Series(['a','b','c','d'],index=['z1','z2','z3','z4'])
z1    a
z2    b
z3    c
z4    d
dtype: object
#3.字典创建
>>> pd.Series({'z1':'a','z2':'b','z3':'c','z4':'d'})
z1    a
z2    b
z3    c
z4    d
dtype: object
#索引
>>> se
z1    a
z2    b
z3    c
z4    d
dtype: object
#1.位置索引
dtype: object
>>> se[0]
'a'
#2.标签索引
>>> se['z1']
'a'
#3.切片索引
>>> se[1:4]
z2    b
z3    c
z4    d
dtype: object
#属性index和values
>>> se.index
Index(['z1', 'z2', 'z3', 'z4'], dtype='object')
>>> se.values
array(['a', 'b', 'c', 'd'], dtype=object)

1.1.2 DataFrame 二维

#创建对象
#1.列表创建
>>> pd.DataFrame([['John',60],['Amy',99],['Jack',80]])
      0   1
0  John  60
1   Amy  99
2  Jack  80
#2.列标签columns,行标签index
>>> pd.DataFrame([['John',60],['Amy',99],['Jack',80]],columns=['name','score'],index=['s01','s02','s03'])
     name  score
s01  John     60
s02   Amy     99
s03  Jack     80
#dataframe属性
>>> df.values
array([['John', 60],
       ['Amy', 99],
       ['Jack', 80]], dtype=object)
>>> df.dtypes
name     object
score     int64
dtype: object
>>> df.index
Index(['s01', 's02', 's03'], dtype='object')
>>> df.columns
Index(['name', 'score'], dtype='object')
>>> df.T
        s01  s02   s03
name   John  Amy  Jack
score    60   99    80
Index(['name', 'score'], dtype='object')
>>> df.head() # 查看前n条,默认5条
     name  score
s01  John     60
s02   Amy     99
s03  Jack     80
>>> df.head(2)
     name  score
s01  John     60
s02   Amy     99
>>> df.tail() # 查看后n条,默认5条
     name  score
s01  John     60
s02   Amy     99
s03  Jack     80
>>> df.tail(2)
     name  score
s02   Amy     99
s03  Jack     80
>>> df.shape
(3, 2)
>>> df.info() #查看索引,数据类型和内存信息
Index: 3 entries, s01 to s03
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   name    3 non-null      object
 1   score   3 non-null      int64
dtypes: int64(1), object(1)
memory usage: 180.0+ bytes

1.2 读取数据

#读取Excel
df=pd.read_excel('name.xlsx',sheet_name='表名',
                  header=表头所在行数,数据本身不包含列名则header=None,
                  index_col=以第n列的数据作为索引,
                  nrows=读取前n行数据,
                  usecols=选中的列,此处的列表表示的不是范围,
                  skiprows=省略指定行数的数据,从第一行开始
                  )
>>> df=pd.read_excel('数据2.xlsx',sheet_name='Sheet1')
>>> df
           中文名                 外文名 性别    国籍     身高     体重    项目   省份
0    阿尔法拉克·阿米奴     Al-Farouq Aminu  男  尼日利亚  206厘米   98kg    篮球  NaN 
1      安德森•瓦莱乔    Anderson Varejao  男    巴西  211厘米  118kg    篮球  NaN     
2          博涅娃    BONEVA Antoaneta  女  保加利亚    NaN    NaN    射击  NaN        
3       阿隆·贝内斯         Aron Baynes  男  澳大利亚  208厘米  118kg    篮球  NaN    
4      埃米莉·西博姆  Emily Jane Seebohm  女  澳大利亚  1.80米   64kg    游泳  NaN    
..         ...                 ... ..   ...    ...    ...   ...  ...
229     罗贝塔·文奇       Roberta Vinci  女   意大利    NaN    NaN    网球  NaN       
230        梁美玉         Liang meiyu  女    中国  166cm   65kg   曲棍球   广东       
231        罗晓玲        Luo Xiaoling  女    中国    NaN    NaN   自行车   甘肃       
232        李雪芮          Li Xue Rui  女    中国  173厘米   65kg   羽毛球   重庆     
233       拉菲尼亚              Rafael  男    巴西  178cm   75kg  男子足球  NaN       

[234 rows x 8 columns]

>>> df=pd.read_excel('数据2.xlsx',sheet_name='Sheet1',index_col=1,usecols=[0,1,2,5],nrows=6)
>>> df
                          中文名 性别     体重
外文名
Al-Farouq Aminu     阿尔法拉克·阿米奴  男   98kg
Anderson Varejao      安德森•瓦莱乔  男  118kg
BONEVA Antoaneta          博涅娃  女    NaN
Aron Baynes            阿隆·贝内斯  男  118kg
Emily Jane Seebohm    埃米莉·西博姆  女   64kg
Bahar Caglar         巴哈尔·卡格拉尔  女   76kg
#读取csv 同excel

1.3 选择数据

#loc 以列名和行名作为参数
>>> df
          中文名                 外文名 性别     体重
p1  阿尔法拉克·阿米奴     Al-Farouq Aminu  男   98kg
p2    安德森•瓦莱乔    Anderson Varejao  男  118kg
p3        博涅娃    BONEVA Antoaneta  女    NaN
p4     阿隆·贝内斯         Aron Baynes  男  118kg
p5    埃米莉·西博姆  Emily Jane Seebohm  女   64kg
p6   巴哈尔·卡格拉尔        Bahar Caglar  女   76kg
>>> df.loc['p3']
中文名                 博涅娃
外文名    BONEVA Antoaneta
性别                    女
体重                  NaN
Name: p3, dtype: object
>>> df.loc['p3']['中文名']
'博涅娃'
>>> df.loc[['p2','p3']]
        中文名               外文名 性别     体重
p2  安德森•瓦莱乔  Anderson Varejao  男  118kg
p3      博涅娃  BONEVA Antoaneta  女    NaN
>>> df.loc[:,['中文名','性别']]
          中文名 性别
p1  阿尔法拉克·阿米奴  男
p2    安德森•瓦莱乔  男
p3        博涅娃  女
p4     阿隆·贝内斯  男
p5    埃米莉·西博姆  女
p6   巴哈尔·卡格拉尔  女
>>> df.loc[['p2','p3'],['中文名','性别']]
        中文名 性别
p2  安德森•瓦莱乔  男
p3      博涅娃  女
#iloc 以行和列位置索引作为参数
>>> df.iloc[2]
中文名                 博涅娃
外文名    BONEVA Antoaneta
性别                    女
体重                  NaN
Name: p3, dtype: object
>>> df.iloc[2][1]
'BONEVA Antoaneta'

1.4 修改行标签和列标签

#直接修改df.index属性
>>> df.index
Index(['p1', 'p2', 'p3', 'p4', 'p5', 'p6'], dtype='object')
>>> df.index=list('123456')
>>> df.index
Index(['1', '2', '3', '4', '5', '6'], dtype='object')
#用df.rename()函数
>>> df.rename(columns={'外文名':'英文名'},index={'1':'a1','2':'a2','3':'a3'},in
>>> df
          中文名                 英文名 性别     体重
a1   阿尔法拉克·阿米奴     Al-Farouq Aminu  男   98kg
a2    安德森•瓦莱乔    Anderson Varejao  男  118kg
a3        博涅娃    BONEVA Antoaneta  女    NaN
4     阿隆·贝内斯         Aron Baynes  男  118kg
5     埃米莉·西博姆  Emily Jane Seebohm  女   64kg
6    巴哈尔·卡格拉尔        Bahar Caglar  女   76kg

2 Pandas数据操作

2.1 数据的运算

2.2 数据格式化

2.3 数据表的处理

2.4 数据移位

标签:index,name,df,dtype,object,NaN,模块,Pandas
From: https://www.cnblogs.com/chenelm/p/17824212.html

相关文章

  • 个人UI组件库如何适配各种模块规范以及支持按需加载组件和发布包到包管理市场公网或者
    相关代码地址:https://github.com/13476075014/lcc-ui从指令上去看具体实现逻辑yarninitLibsJs用指令把所有组件都让入一个js文件对外暴露,作为umd规范的入口文件yarnbuild:umdjs用webpack输出上面文件,作为umd规范的yarninitEsmsJs用指令把所有组件都让入一个js文件......
  • 多模块springboot项目打jar包 没有主清单属性
    说明:一个多模块的项目 两个子Module 一个core 一个server。java8的环境 |--XChome(pom.xmlxchome的 父级)--|--xc-core(pom.xmlxc-core的子级)--|--xc-server(pom.xmlxc-server的子级) xc-core:主要定义一些常量类、工具类、业务部分(controllerservice......
  • BOSHIDA 如何根据不同仪器选择适合的电源模块?
    BOSHIDA如何根据不同仪器选择适合的电源模块?在实验室、工业生产等场合中,电源模块是必不可少的设备之一。电源模块的作用是将输入电能转换成所需要的电压和电流,为各种仪器设备提供恰当的电源。不同的仪器设备对电源的要求不同,因此在选择电源模块时需要根据具体的情况进行选择。下......
  • Pandas入门
    安装库pipinstallpandas#读取.xlspipinstallxlrd#读取.xlsxpipinstallopenpyxl案例1importpandasaspdpath=r"C:\work\test.xlsx"data=pd.read_excel(path)print(data)读取.csv文件importpandasaspddata=pd.read_csv(r"C:\\work......
  • 基于Forcite模块的分子动力学研究药剂与矿物相互作用实例(一)
    关键词:相互作用MS Forcite分子动力学径向分布 笔名:杨过Forcite模块是分子动力学计算的主要模块,研究范围广,可以对多种周期性体系进行计算分析,在矿物分选领域中主要是计算分析药剂与矿物相互作用,在不同计算参数条件下可以实现药剂与矿物相互作用模型的预测与分析,从而得到表面......
  • pandas 筛选 可以用 列表解析式
    list_dir=os.listdir(addr)df_dir=pd.DataFrame(os.path.splitext(i)foriinlist_dir)display(df_dir)today=datetime.date.today().strftime('%m月%d日')#筛选第1列包含today的行display(pd.DataFrame(iforiindf_dir.valuesiftodayini[0]))display......
  • 缺少perl模块; 当安装对应名称模块不起作用的解决方法
     001、问题描述安装RepeatModeler-2.0.2a软件时提示缺少对应的perl模块,利用cpan安装对应模块,并不能解决问题(不知道原因)。 002、解决思路01、利用cpan安装缺少的模块名称安装,根据屏幕输出记录安装的软件包02、利用yum-yinstallperl*&>install_log.txt安装所有的per......
  • centos 7 中安装 LWP::UserAgent 模块
     001、编译安装RepeatModeler-2.0.2a时报错如下:(base)[[email protected]]#perlconfigure##编译安装,提示缺乏LWP::UserAgentmoduleThefollowingperlmodulesrequiredbyRepeatModeleraremissingfromyoursystem.Pleaseinstallthesefir......
  • 非root 用户安装perl模块
     001、perl配置RepeatModeler警告缺少perl模块如下:(base)[[email protected]]$perlconfigureThefollowingperlmodulesrequiredbyRepeatModeleraremissingfromyoursystem.Pleaseinstallthesefirst:File::WhichLWP::U......
  • 【django框架】共4大模块50页md学习文档 第5篇:django的请求与响应详解
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用整套Django笔记直接地址:请移步这里共10章,31子模块请求与响应学习目标掌握r......