Pandas CSV 文件

简介: 10月更文挑战第27天

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

CSV 是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。

Pandas 可以很方便的处理 CSV 文件,本文以 nba.csv 为例,你可以下载 nba.csv打开 nba.csv 查看。

实例

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.to_string())

to_string() 用于返回 DataFrame 类型的数据,如果不使用该函数,则输出结果为数据的前面 5 行和末尾 5 行,中间部分以 ... 代替。

实例

import pandas as pd


df = pd.read_csv('nba.csv')


print(df)

输出结果为:

             Name            Team  Number Position   Age Height  Weight            College     Salary

0    Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0

1      Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0

2     John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN

3      R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0

4    Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0

..             ...             ...     ...      ...   ...    ...     ...                ...        ...

453   Shelvin Mack       Utah Jazz     8.0       PG  26.0    6-3   203.0             Butler  2433333.0

454      Raul Neto       Utah Jazz    25.0       PG  24.0    6-1   179.0                NaN   900000.0

455   Tibor Pleiss       Utah Jazz    21.0        C  26.0    7-3   256.0                NaN  2900000.0

456    Jeff Withey       Utah Jazz    24.0        C  26.0    7-0   231.0             Kansas   947276.0

457            NaN             NaN     NaN      NaN   NaN    NaN     NaN                NaN        NaN

我们也可以使用 to_csv() 方法将 DataFrame 存储为 csv 文件:

实例

import pandas as pd

 

# 三个字段 name, site, age

nme = ["Google", "Runoob", "Taobao", "Wiki"]

st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]

ag = [90, 40, 80, 98]

 

# 字典

dict = {'name': nme, 'site': st, 'age': ag}

   

df = pd.DataFrame(dict)

 

# 保存 dataframe

df.to_csv('site.csv')

执行成功后,我们打开 site.csv 文件,显示结果如下:


数据处理

head()

head( n ) 方法用于读取前面的 n 行,如果不填参数 n ,默认返回 5 行。

实例 - 读取前面 5 行

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.head())

输出结果为:

           Name            Team  Number Position   Age Height  Weight            College     Salary

0  Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0

1    Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0

2   John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN

3    R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0

4  Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0

实例 - 读取前面 10 行

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.head(10))

输出结果为:

           Name            Team  Number Position   Age Height  Weight            College      Salary

0  Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas   7730337.0

1    Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette   6796117.0

2   John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University         NaN

3    R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State   1148640.0

4  Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN   5000000.0

5   Amir Johnson  Boston Celtics    90.0       PF  29.0    6-9   240.0                NaN  12000000.0

6  Jordan Mickey  Boston Celtics    55.0       PF  21.0    6-8   235.0                LSU   1170960.0

7   Kelly Olynyk  Boston Celtics    41.0        C  25.0    7-0   238.0            Gonzaga   2165160.0

8   Terry Rozier  Boston Celtics    12.0       PG  22.0    6-2   190.0         Louisville   1824360.0

9   Marcus Smart  Boston Celtics    36.0       PG  22.0    6-4   220.0     Oklahoma State   3431040.0

tail()

tail( n ) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN

实例 - 读取末尾 5 行

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.tail())

输出结果为:

            Name       Team  Number Position   Age Height  Weight College     Salary

453  Shelvin Mack  Utah Jazz     8.0       PG  26.0    6-3   203.0  Butler  2433333.0

454     Raul Neto  Utah Jazz    25.0       PG  24.0    6-1   179.0     NaN   900000.0

455  Tibor Pleiss  Utah Jazz    21.0        C  26.0    7-3   256.0     NaN  2900000.0

456   Jeff Withey  Utah Jazz    24.0        C  26.0    7-0   231.0  Kansas   947276.0

457           NaN        NaN     NaN      NaN   NaN    NaN     NaN     NaN        NaN

实例 - 读取末尾 10 行

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.tail(10))

输出结果为:

              Name       Team  Number Position   Age Height  Weight   College      Salary

448  Gordon Hayward  Utah Jazz    20.0       SF  26.0    6-8   226.0    Butler  15409570.0

449     Rodney Hood  Utah Jazz     5.0       SG  23.0    6-8   206.0      Duke   1348440.0

450      Joe Ingles  Utah Jazz     2.0       SF  28.0    6-8   226.0       NaN   2050000.0

451   Chris Johnson  Utah Jazz    23.0       SF  26.0    6-6   206.0    Dayton    981348.0

452      Trey Lyles  Utah Jazz    41.0       PF  20.0   6-10   234.0  Kentucky   2239800.0

453    Shelvin Mack  Utah Jazz     8.0       PG  26.0    6-3   203.0    Butler   2433333.0

454       Raul Neto  Utah Jazz    25.0       PG  24.0    6-1   179.0       NaN    900000.0

455    Tibor Pleiss  Utah Jazz    21.0        C  26.0    7-3   256.0       NaN   2900000.0

456     Jeff Withey  Utah Jazz    24.0        C  26.0    7-0   231.0    Kansas    947276.0

457             NaN        NaN     NaN      NaN   NaN    NaN     NaN       NaN         NaN

info()

info() 方法返回表格的一些基本信息:

实例

import pandas as pd


df = pd.read_csv('nba.csv')


print(df.info())

输出结果为:

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 458 entries, 0 to 457          # 行数,458 行,第一行编号为 0

Data columns (total 9 columns):            # 列数,9列

#   Column    Non-Null Count  Dtype       # 各列的数据类型

---  ------    --------------  -----  

0   Name      457 non-null    object

1   Team      457 non-null    object

2   Number    457 non-null    float64

3   Position  457 non-null    object

4   Age       457 non-null    float64

5   Height    457 non-null    object

6   Weight    457 non-null    float64

7   College   373 non-null    object         # non-null,意思为非空的数据    

8   Salary    446 non-null    float64

dtypes: float64(4), object(5)                 # 类型

non-null 为非空数据,我们可以看到上面的信息中,总共 458 行,College 字段的空值最多。

目录
相关文章
|
7月前
|
移动开发 前端开发 JavaScript
mui:接口的使用
本文介绍了HTML5及其扩展HTML5+的基本概念,以及在移动应用开发中常用的mui框架中的plusReady事件与ready事件的区别。plusReady事件确保了HTML5+ API在页面加载完成后可被调用,适用于需要调用原生功能的应用场景。文中还提供了GET和POST请求的示例代码,展示了如何使用mui.ajax方法进行数据交互。
137 5
|
7月前
|
前端开发 JavaScript API
前端界的革命性突破:掌握这些新技术,让你的作品引领潮流!
【10月更文挑战第30天】前端技术日新月异,从传统的HTML、CSS、JavaScript到现代的React、Vue、Angular等框架,以及Webpack、Sass等工具,前端开发经历了巨大变革。本文通过对比新旧技术,展示如何高效掌握这些新技术,助你作品引领潮流。
134 2
|
7月前
|
Java
如何捕获和处理 EOFException 异常
EOFException 异常通常在尝试从输入流中读取数据但已到达文件末尾时抛出。要捕获和处理该异常,可以使用 try-catch 语句块,在 catch 块中进行相应的错误处理或提示。例如: ```java try { // 读取数据的代码 } catch (EOFException e) { System.out.println(&quot;已到达文件末尾&quot;); } ```
394 6
|
10月前
|
机器学习/深度学习 编解码 缓存
阿里云服务器计算型c5/c6/c7/c8y和通用型g5/g6/g7/g8y四代实例对比与选择参考
阿里云服务器的所有实例规格中,计算型和通用型是用户选择最多的,计算型实例主要适用于网站应用、批量计算、视频编码等各种类型和规模的企业级应用。通用型实例则主要适用于中小型数据库系统、缓存、搜索集群等各种类型的企业级应用等场景。阿里云服务器的计算型和通用型实例也经过了多代升级,阿里云不断推出新一代的云服务器产品以满足不同用户的需求。本文将详细对比阿里云计算型c5、c6、c7、c8y以及通用型g5、g6、g7、g8y四代云服务器实例,帮助用户更好地了解这些产品的特性和适用场景,以供选择和参考。
阿里云服务器计算型c5/c6/c7/c8y和通用型g5/g6/g7/g8y四代实例对比与选择参考
|
10月前
|
Kubernetes 网络协议 调度
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?
|
7月前
|
存储 监控 物联网
【Clickhouse 探秘】Clickhouse 投影技术到底能做什么?怎么实现的?
ClickHouse 投影是一种数据结构,用于提高特定查询模式下的性能。通过预处理数据,投影可以显著减少查询的执行时间,特别是在复杂的聚合和排序查询中。投影自动与基础表数据保持同步,支持多投影,适用于实时分析、用户行为分析、日志分析等场景。虽然投影能显著提升查询性能,但也会增加存储开销和写入性能的影响。
251 0
|
12月前
|
算法 图形学
【推荐100个unity插件之4】OpenFracture插件实现unity3d物体破裂和切割
【推荐100个unity插件之4】OpenFracture插件实现unity3d物体破裂和切割
218 0
|
机器学习/深度学习 人工智能 安全
AIGC技术前沿
【1月更文挑战第8天】AIGC技术前沿
187 3
AIGC技术前沿
|
Serverless Go 云计算
Lambda
Lambda自制脑图
316 0
 Lambda
|
分布式计算 大数据 Java
Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流
Apache Spark Meetup | 1 月线上直播报名通道已开启,赶快报名预约吧!
774 0
Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流