DataFrame入门

news2024/9/20 22:36:27

文章目录

    • 1. 数据集合加载
    • 2. 使用常用的属性/方法查看数据情况
      • type()
      • shape
      • columns
      • dtypes
      • info()
    • 3. 查看部分数据
      • 获取一列数据
      • 获取多列数据
      • 按行加载数据
      • 同时取出行列数据
      • 切片语法
    • 4. 简单数据分析
    • 5. 数据可视化
    • 总结


1. 数据集合加载

pd.read_csv()方法不仅可以加载CSV文件,还可以加载TSV文件,不过需要通过sep参数指明数据分割符号。

df = pd.read_csv('data/gapminder.tsv',sep='\t')
print(df)
'''
代码输出:
          country continent  year  lifeExp       pop   gdpPercap
0     Afghanistan      Asia  1952   28.801   8425333  779.445314
1     Afghanistan      Asia  1957   30.332   9240934  820.853030
2     Afghanistan      Asia  1962   31.997  10267083  853.100710
3     Afghanistan      Asia  1967   34.020  11537966  836.197138
4     Afghanistan      Asia  1972   36.088  13079460  739.981106
...           ...       ...   ...      ...       ...         ...
1699     Zimbabwe    Africa  1987   62.351   9216418  706.157306
1700     Zimbabwe    Africa  1992   60.377  10704340  693.420786
1701     Zimbabwe    Africa  1997   46.809  11404948  792.449960
1702     Zimbabwe    Africa  2002   39.989  11926563  672.038623
1703     Zimbabwe    Africa  2007   43.487  12311143  469.709298

[1704 rows x 6 columns]
'''

2. 使用常用的属性/方法查看数据情况

type()

print(type(df))
'''
代码输出:
pandas.core.frame.DataFrame
'''

shape

print(df.shape)
'''
代码输出:
(1704,6)
'''

columns

print(df.columns)
'''
代码输出:
Index(['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap'], dtype='object')
'''

dtypes

print(df.dtypes)
'''
代码输出:
country       object
continent     object
year           int64
lifeExp      float64
pop            int64
gdpPercap    float64
dtype: object
'''

info()

print(df.info())
'''
代码输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1704 entries, 0 to 1703
Data columns (total 6 columns):
 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   country    1704 non-null   object 
 1   continent  1704 non-null   object 
 2   year       1704 non-null   int64  
 3   lifeExp    1704 non-null   float64
 4   pop        1704 non-null   int64  
 5   gdpPercap  1704 non-null   float64
dtypes: float64(2), int64(2), object(2)
memory usage: 80.0+ KB
'''

3. 查看部分数据

获取数据最关键的两个属性:

  • df.loc[行名,列名]
  • df.iloc[行号,列号]

获取一列数据

DataFrame可以看作一个Series的列表,传入Series的名称,就可以获取对应的一列数据。

col = col = df['country']
print(col)
'''
代码输出:
0       Afghanistan
1       Afghanistan
2       Afghanistan
3       Afghanistan
4       Afghanistan
           ...     
1699       Zimbabwe
1700       Zimbabwe
1701       Zimbabwe
1702       Zimbabwe
1703       Zimbabwe
Name: country, Length: 1704, dtype: object
'''

获取多列数据

获取多列数据,需要传入一个包含列名的列表。

subset = df[['country','continent','year']]
print(subset)
'''
代码输出:
          country continent  year
0     Afghanistan      Asia  1952
1     Afghanistan      Asia  1957
2     Afghanistan      Asia  1962
3     Afghanistan      Asia  1967
4     Afghanistan      Asia  1972
...           ...       ...   ...
1699     Zimbabwe    Africa  1987
1700     Zimbabwe    Africa  1992
1701     Zimbabwe    Africa  1997
1702     Zimbabwe    Africa  2002
1703     Zimbabwe    Africa  2007

[1704 rows x 3 columns]
'''

按行加载数据

DataFrame默认的行索引是数字索引,也就是从0开始的数字序列,这种情况下行索引等于行编号。

以下代码获取df中的第1行数据(编号为0,行索引也是0)。

print(df.loc[0])
'''
代码输出:
country      Afghanistan
continent           Asia
year                1952
lifeExp           28.801
pop              8425333
gdpPercap     779.445314
Name: 0, dtype: object
'''

使用iloc也可以达到同样的效果:

print(df.iloc[0])
'''
代码输出:
country      Afghanistan
continent           Asia
year                1952
lifeExp           28.801
pop              8425333
gdpPercap     779.445314
Name: 0, dtype: object
'''

如果在加载数据的时候 ,手动指明行索引,那么行索引和数字编号就会有差异。

以下代码获取数据集中的第一行,行编号为0,行名(行索引)为Avatar(阿凡达)。

movie = pd.read_csv('data/movie.csv',index_col='movie_title')
movie.loc['Avatar'] # 这里使用行索引
'''
代码输出:
color                                                                    Color
director_name                                                    James Cameron
num_critic_for_reviews                                                   723.0
duration                                                                 178.0
director_facebook_likes                                                    0.0
actor_3_facebook_likes                                                   855.0
actor_2_name                                                  Joel David Moore
... ...
country                                                                    USA
content_rating                                                           PG-13
budget                                                             237000000.0
title_year                                                              2009.0
actor_2_facebook_likes                                                   936.0
imdb_score                                                                 7.9
aspect_ratio                                                              1.78
movie_facebook_likes                                                     33000
Name: Avatar, dtype: object
'''

使用iloc可以达到同样的效果:

print(movie.iloc[0])
'''
代码输出:
color                                                                    Color
director_name                                                    James Cameron
num_critic_for_reviews                                                   723.0
duration                                                                 178.0
director_facebook_likes                                                    0.0
actor_3_facebook_likes                                                   855.0
actor_2_name                                                  Joel David Moore
... ...
country                                                                    USA
content_rating                                                           PG-13
budget                                                             237000000.0
title_year                                                              2009.0
actor_2_facebook_likes                                                   936.0
imdb_score                                                                 7.9
aspect_ratio                                                              1.78
movie_facebook_likes                                                     33000
Name: Avatar, dtype: object
'''

由于iloc使用行号访问数据,所以可以使用python的列表方式进行访问,例如负数索引:

print(df.iloc[-1])
'''
代码输出:
country        Zimbabwe
continent        Africa
year               2007
lifeExp          43.487
pop            12311143
gdpPercap    469.709298
Name: 1703, dtype: object
'''

同时取出行列数据

df.loc[:,['country','year']]
'''
代码输出:
          country  year
0     Afghanistan  1952
1     Afghanistan  1957
2     Afghanistan  1962
3     Afghanistan  1967
4     Afghanistan  1972
...           ...   ...
1699     Zimbabwe  1987
1700     Zimbabwe  1992
1701     Zimbabwe  1997
1702     Zimbabwe  2002
1703     Zimbabwe  2007

[1704 rows x 2 columns]
'''
df.iloc[:,[0,2]]
'''
代码输出:
          country  year
0     Afghanistan  1952
1     Afghanistan  1957
2     Afghanistan  1962
3     Afghanistan  1967
4     Afghanistan  1972
...           ...   ...
1699     Zimbabwe  1987
1700     Zimbabwe  1992
1701     Zimbabwe  1997
1702     Zimbabwe  2002
1703     Zimbabwe  2007

[1704 rows x 2 columns]
'''

切片语法

获取3、4、5列所有的行数据:

df.iloc[:,3:6]
'''
代码输出:
      lifeExp       pop   gdpPercap
0      28.801   8425333  779.445314
1      30.332   9240934  820.853030
2      31.997  10267083  853.100710
3      34.020  11537966  836.197138
4      36.088  13079460  739.981106
...       ...       ...         ...
1699   62.351   9216418  706.157306
1700   60.377  10704340  693.420786
1701   46.809  11404948  792.449960
1702   39.989  11926563  672.038623
1703   43.487  12311143  469.709298

[1704 rows x 3 columns]
'''

也可以设置切片的步长:

df.iloc[:,0:6:2]
'''
代码输出:
          country  year       pop
0     Afghanistan  1952   8425333
1     Afghanistan  1957   9240934
2     Afghanistan  1962  10267083
3     Afghanistan  1967  11537966
4     Afghanistan  1972  13079460
...           ...   ...       ...
1699     Zimbabwe  1987   9216418
1700     Zimbabwe  1992  10704340
1701     Zimbabwe  1997  11404948
1702     Zimbabwe  2002  11926563
1703     Zimbabwe  2007  12311143

[1704 rows x 3 columns]
'''

4. 简单数据分析

  1. 获取每一年的平均预期寿命
df.groupby('year')['lifeExp'].mean()
'''
代码输出:
year
1952    49.057620
1957    51.507401
1962    53.609249
1967    55.678290
1972    57.647386
1977    59.570157
1982    61.533197
1987    63.212613
1992    64.160338
1997    65.014676
2002    65.694923
2007    67.007423
Name: lifeExp, dtype: float64
'''
  1. 获取每年的平均预期寿命,平均人口,平均GDP
df.groupby('year')[['lifeExp','pop','gdpPercap']].mean()
'''
代码输出:
        lifeExp           pop     gdpPercap
year                                       
1952  49.057620  1.695040e+07   3725.276046
1957  51.507401  1.876341e+07   4299.408345
1962  53.609249  2.042101e+07   4725.812342
1967  55.678290  2.265830e+07   5483.653047
1972  57.647386  2.518998e+07   6770.082815
1977  59.570157  2.767638e+07   7313.166421
1982  61.533197  3.020730e+07   7518.901673
1987  63.212613  3.303857e+07   7900.920218
1992  64.160338  3.599092e+07   8158.608521
1997  65.014676  3.883947e+07   9090.175363
2002  65.694923  4.145759e+07   9917.848365
2007  67.007423  4.402122e+07  11680.071820
'''
  1. 每年、每大洲的数据平均值
df.groupby(by=['year','continent'])[['lifeExp','pop','gdpPercap']].mean()
'''
代码输出:
                  lifeExp           pop     gdpPercap
year continent                                       
1952 Africa     39.135500  4.570010e+06   1252.572466
     Americas   53.279840  1.380610e+07   4079.062552
     Asia       46.314394  4.228356e+07   5195.484004
     Europe     64.408500  1.393736e+07   5661.057435
     Oceania    69.255000  5.343003e+06  10298.085650
1957 Africa     41.266346  5.093033e+06   1385.236062
     Americas   55.960280  1.547816e+07   4616.043733
     Asia       49.318544  4.735699e+07   5787.732940
     Europe     66.703067  1.459635e+07   6963.012816
     Oceania    70.295000  5.970988e+06  11598.522455
... ...
2002 Africa     53.325231  1.603315e+07   2599.385159
     Americas   72.422040  3.399091e+07   9287.677107
     Asia       69.233879  1.091455e+08  10174.090397
     Europe     76.700600  1.927413e+07  21711.732422
     Oceania    79.740000  1.172741e+07  26938.778040
2007 Africa     54.806038  1.787576e+07   3089.032605
     Americas   73.608120  3.595485e+07  11003.031625
     Asia       70.728485  1.155138e+08  12473.026870
     Europe     77.648600  1.953662e+07  25054.481636
     Oceania    80.719500  1.227497e+07  29810.188275
'''
  1. 每大洲有多少个国家
df.groupby('continent')['country'].nunique()
'''
代码输出:
continent
Africa      52
Americas    25
Asia        33
Europe      30
Oceania      2
Name: country, dtype: int64
'''

5. 数据可视化

df.groupby('year')['lifeExp'].mean().plot()
# kind = 'bar' 可以画柱状图

在这里插入图片描述

总结

数据分析处理流程:
加载数据 → 数据基本处理 → 数据分析 → 数据可视化 → 得出结论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1061379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DFIR】蘇小沐的微信公众号

【DFIR】蘇小沐的微信公众号 最近整理排版微信公众号【DFIR】&#xff0c;欢迎关注哟&#xff01;名称【DFIR】表示【数字取证和事件响应】之意&#xff01;—【蘇小沐】

哈希表(Hash Table)介绍

哈希表&#xff08;Hash Table&#xff09;介绍 哈希表&#xff08;Hash Table&#xff09;&#xff1a;也叫做散列表。是根据键值&#xff08;Key Value、关键码值&#xff09;直接进行访问的数据结构。 哈希表通过“键&#xff08;key&#xff09;”和“映射函数&#xff0…

Hive【Hive(六)窗口函数】

窗口函数&#xff08;window functions&#xff09; 概述 定义 窗口函数能够为每行数据划分 一个窗口&#xff0c;然后对窗口范围内的数据进行计算&#xff0c;最后将计算结果返回给该行数据。 语法 窗口函数的语法主要包括 窗口 和 函数 两个部分。其中窗口用于定义计算范围…

A*算法和Dijkstra

A*算法 A*算法 个人理解FGH&#xff0c;F是总距离&#xff0c;G是已经走过的距离&#xff0c;F是暂未走过的距离&#xff0c;通过不断探索领进路径直至所有路径都到达终点&#xff0c;然后反向去确定最短路&#xff01; A*算法是静态路网中寻找最短路的最有效算法&#xff…

网络安全工程师考证指南,不看就亏了!!

目前网络安全行业&#xff0c;国内都有哪些证书可以考&#xff1f; 一、CISP-PTE &#xff08;国家注册渗透测试工程师&#xff09; CISP-PTE即注册信息安全渗透测试工程师&#xff0c;该证书由中国信息安全测评中心颁发&#xff0c;证书是国内唯一认可的渗透测试认证&#x…

GO 中优雅编码和降低圈复杂度

本次主要是聊聊关于使用接口抽象和降低圈复杂度的方式 工作中&#xff0c;难免会遇到老项目老代码&#xff0c;不仅仅需要我们维护&#xff0c;可能还需要我们在原来的垃圾代码上进行新增功能或者是进行优化调整 例如 现有的老代码中关于用户系统这一块就已经经是摇摇欲坠&a…

新版精仿今日头条新闻网站源码/搭建教程+自动采集接口+采集更新文章【新闻站搭建源码】

精仿今日头条新闻网站源码&#xff0c;这个是新闻站搭建源码&#xff0c;含有搭建教程&#xff0c;也可以自动采集接口采集更新文章。源码亲测可用&#xff0c;mysql5.7、PHP7.3支持页面自适应&#xff0c;里面带有详细安装搭建教程。 功能特点&#xff1a; 1、这个网站可以自…

【C++】多线程的学习笔记(2)——白话文版(bushi

目录 前一篇 本章内容提要 使用mutex锁的原因 mutex锁的概念 mutex的使用教程 锁的声明以及命名 mutex的加锁以及解锁 例子 结果 注意 mutex的其他方式的锁介绍 lock_guard 介绍 例子 运行结果 adopt_lock参数 unique_lock 介绍 try_to_lock defer_lock re…

fic2023(完结,AIRDROP放弃)

AIRDROP 1.请分析苹果手机导出日志,airdrop所使用的扫描模式(Scanning mode)为?? 直接搜索可得Scanning mode Contacts Only 2. AirDrop服务计划监听端口号是多少? 8770 3.AirDrop中接收到图片的识别码(identifier)是多少?(标准格式:12345678-1234-5678-1234-5678…

工厂生产线管理所需的系统介绍

工厂生产线管理对于提高生产效率、优化资源利用和确保产品质量至关重要。在现代化工厂中&#xff0c;采用各种系统来支持生产线的管理和运营。本文将全方位介绍工厂生产线管理所需的系统&#xff0c;包括生产计划系统、设备监控系统、质量管理系统和数据分析系统。 一、生产计划…

Adobe_InDesign_2023_18.4.0.056图文安装教程及下载

Adobe InDesign是Adobe公司的一个桌面出版 (DTP)应用程序&#xff0c;简称“Id”,主要用于各种印刷品的排版编辑。InDesign是一款功能强大的出版物创作、排版和打印软件&#xff0c;可以帮助出版物和广告创作者提高效率&#xff0c;节省时间&#xff0c;改善印刷质量。InDesign…

大模型部署手记(6)通义千问+Jetson AGX Orin

1.简介 组织机构&#xff1a;阿里 代码仓&#xff1a;https://github.com/QwenLM/Qwen 模型&#xff1a;Qwen/Qwen-7B-Chat-Int4 下载&#xff1a;http://huggingface.co/Qwen/Qwen-7B-Chat-Int4 modelscope下载&#xff1a;https://modelscope.cn/models/qwen/Qwen-7B-Ch…

设计模式——Decorator(装饰器模式)

Decorator(装饰器模式) 目的&#xff1a; 动态地给一个对象添加一些额外的职责。 适用性&#xff1a; 在不影响其他对象的情况下&#xff0c;以动态、透明的方式给单个对象添加职责。 简单解释 当有一个已经完成的系统&#xff0c;其中类和对象的关系的错综复杂的&#x…

【MySql】Mysql之备份与恢复

目录 一、mysql日志概述 1、日志类型与作用 2、日志配置文件 3、日志配置文件的查询 二、备份的类型❤ 1、物理备份 1.1 冷备份 1.2 热备份 1.3 温备份 2、逻辑备份❤ 2.1 完全备份 2.2 差异备份 2.3 增量备份 2.5 如何选择逻辑备份策略 3、常见的备份方法 3…

大模型部署手记(3)通义千问+Windows GPU

1.简介 组织机构&#xff1a;阿里 代码仓&#xff1a;GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud. 模型&#xff1a;Qwen/Qwen-7B-Chat-Int4 下载&#xff1a;http://huggingface…

Modelsim测试覆盖率操作说明

1、打开Project窗口界面 2、在project界面下&#xff0c;选中所有需要测试覆盖率的.v文件&#xff08;不包括tb文件&#xff09;&#xff0c;鼠标点击右键&#xff0c;在Properties选项中选择Coverage选项&#xff0c;选择需要测试的覆盖率类型 3、重新编译所有的源文件&#x…

【gitlab】从其他仓库创建项目

需求描述 解决方法 以renren-fast脚手架为例 第一步 第二步 第三步 第四步 参考文章

Echarts 教程二

Echarts 教程二 Echarts 常用配置篇柱状图常用配置折线图常用配置散点图常用配置饼图常用配置地图常用配置 Echarts 常用配置篇 柱状图常用配置 配置柱状图的最大最小值 平均值 显示柱状图文字 柱状图宽度 折线图常用配置 配置最大最小值 平均值 标记区域 线的平滑 线的样式 等…

苹果签名有多少种类之TF签名(TestFlight签名)是什么?优势是什么?什么场合需要应用到?

&#xff08;一&#xff09;TestFlight 能够让您&#xff1a;邀请内部和外部的测试人员为应用程序提供反馈。 跟踪应用程序在测试过程中发现的 bug 和用户体验问题。 收集 Crash 报告&#xff0c;了解应用程序在真实设备上的运行状况。 要使用 TestFlight&#xff0c;您可以按照…

用Python操作Word文档,看这一篇就对了!

本文主要讲解Python中操作word的思路。 一、Hello&#xff0c;world&#xff01; 使用win32com需要安装pypiwin32 pip install pypiwin32 推荐使用python的IDLE&#xff0c;交互方便 1、如何新建文档 from win32com.client import Dispatchapp Dispatch(Word.Application…