软件测试|数据处理神器pandas教程(四)

2023-04-10 11:23:41 浏览数 (1)

前言

很多时候,我们使用pandas进行数据处理的时,并不是将数据写在脚本里,而是使用pandas读取数据文件,pandas可以很便捷地处理CSV格式的文件,本篇文章我们就来介绍一下pandas处理CSV文件的方法。

关于CSV文件

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

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

数据准备

我们获取了2022年度中国大陆地区31个省市自治区的主要经济数据,包括GDP,增长率,常住人口,人均GDP,人均收入数据,写入了一个CSV数据。并将文件命名为data.csv。

pandas读取CSV文件

pandas提供了直接读取CSV文件的函数,read_csv()即可以读取数据,下面是我们的读取实例,代码如下:

代码语言:python代码运行次数:0复制
import pandas as pd

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

print(df.to_string())
-------------------------------
输出结果如下:
    排名   省份        GDP  growth  Population  GDP per capita  Income per capita
0    1   广东  129118.58     1.9    12684.00           10.18              47065
1    2   江苏  122875.60     2.8     8505.40           14.45              49862
2    3   山东   87435.00     3.9    10169.99            8.60              37560
3    4   浙江   77715.00     3.1     6540.00           11.88              60302
4    5   河南   61345.05     3.1     9883.00            6.21              28222
5    6   四川   56749.80     2.9     8372.00            6.78              30679
6    7   湖北   53734.92     4.3     5844.00            9.22              32914
7    8   福建   53109.85     4.7     4188.00           12.68              43118
8    9   湖南   48670.37     4.5     6604.00            7.35              34036
9   10   安徽   45045.00     3.5     6127.00            7.37              32745
10  11   上海   44652.80    -0.2     2489.43           17.94              79610
11  12   河北   42370.40     3.8     7420.00            5.69              30867
12  13   北京   41610.90     0.7     2188.60           19.01              77415
13  14   陕西   32772.68     4.3     3954.00            8.29              30116
14  15   江西   32074.70     4.7     4517.40            7.10              32419
15  16   重庆   29129.03     2.6     3212.43            9.07              35666
16  17   辽宁   28975.10     2.1     4255.00            6.85              36089
17  18   云南   28954.20     4.3     4690.00            6.17              26937
18  19   广西   26300.87     2.9     5037.00            5.22              27981
19  20   山西   25642.59     4.4     3480.48            7.37              29178
20  21  内蒙古   23159.00     4.2     2400.00            9.65              35921
21  22   贵州   20164.58     1.2     3858.00            5.23              25508
22  23   新疆   17741.34     3.2     2589.00            6.85              27063
23  24   天津   16311.34     1.0     1373.00           11.88              48976
24  25  黑龙江   15901.00     2.7     3125.00            5.09              28346
25  26   吉林   13070.24    -1.9     2375.37            5.50              27975
26  27   甘肃   11201.60     4.5     2490.02            4.50              23273
27  28   海南    6818.22     0.2     1020.46            6.68              30957
28  29   宁夏    5069.57     4.0      725.00            6.99              29599
29  30   青海    3610.10     2.3      594.00            6.08              27000
30  31   西藏    2132.64     1.1      366.00            5.83              26675

pandas写入CSV文件

pandas除了可以读取CSV文件中的数据,当然还可以将DataFrame中的数据存储为CSV文件,使用to_csv()即可,示例代码如下:

代码语言:python代码运行次数:0复制
import pandas as pd

club = ['IG', 'EDG', 'RNG']
player = ['theshy', 'meiko', 'gala']
position = ['top', 'support', 'adc']

dict = {'club': club, 'player': player, 'position': position}

df = pd.DataFrame(dict)

df.to_csv('game.csv')

执行成功之后,我们可以查看CSV文件的内容如下图:

在这里插入图片描述在这里插入图片描述

数据处理

  1. head(),查看头部n行的数据

我们都知道在Linux中,可以使用head查看指定的顶部几行的文件内容,pandas同样提供了head()方法实现类似功能,head(n)读取前面的 n 行,如果不填参数 n ,默认返回 5 行。示例代码如下:

代码语言:python代码运行次数:0复制
# 读取前5行
import pandas as pd

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

print(df.head())
--------------------------
输出结果如下:
   排名  省份        GDP  growth  Population  GDP per capita  Income per capita
0   1  广东  129118.58     1.9    12684.00           10.18              47065
1   2  江苏  122875.60     2.8     8505.40           14.45              49862
2   3  山东   87435.00     3.9    10169.99            8.60              37560
3   4  浙江   77715.00     3.1     6540.00           11.88              60302
4   5  河南   61345.05     3.1     9883.00            6.21              28222
代码语言:python代码运行次数:0复制
# 读取前n行

import pandas as pd

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

print(df.head(15))

---------------------------------
输出结果如下:
    排名  省份        GDP  growth  Population  GDP per capita  Income per capita
0    1  广东  129118.58     1.9    12684.00           10.18              47065
1    2  江苏  122875.60     2.8     8505.40           14.45              49862
2    3  山东   87435.00     3.9    10169.99            8.60              37560
3    4  浙江   77715.00     3.1     6540.00           11.88              60302
4    5  河南   61345.05     3.1     9883.00            6.21              28222
5    6  四川   56749.80     2.9     8372.00            6.78              30679
6    7  湖北   53734.92     4.3     5844.00            9.22              32914
7    8  福建   53109.85     4.7     4188.00           12.68              43118
8    9  湖南   48670.37     4.5     6604.00            7.35              34036
9   10  安徽   45045.00     3.5     6127.00            7.37              32745
10  11  上海   44652.80    -0.2     2489.43           17.94              79610
11  12  河北   42370.40     3.8     7420.00            5.69              30867
12  13  北京   41610.90     0.7     2188.60           19.01              77415
13  14  陕西   32772.68     4.3     3954.00            8.29              30116
14  15  江西   32074.70     4.7     4517.40            7.10              32419
  1. tail(),查看尾部的数据

与上面所说的head()方法类似,tail( n ) 方法用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行,空行各个字段的值返回 NaN。

代码语言:python代码运行次数:0复制
#  读取末尾5行

import pandas as pd

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

print(df.tail())

------------------------------------
输出结果如下:
    排名  省份       GDP  growth  Population  GDP per capita  Income per capita
26  27  甘肃  11201.60     4.5     2490.02            4.50              23273
27  28  海南   6818.22     0.2     1020.46            6.68              30957
28  29  宁夏   5069.57     4.0      725.00            6.99              29599
29  30  青海   3610.10     2.3      594.00            6.08              27000
30  31  西藏   2132.64     1.1      366.00            5.83              26675
代码语言:python代码运行次数:0复制
# 输出后n行数据
import pandas as pd

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

print(df.tail(10))

----------------------
输出结果如下:
    排名   省份       GDP  growth  Population  GDP per capita  Income per capita
21  22   贵州  20164.58     1.2     3858.00            5.23              25508
22  23   新疆  17741.34     3.2     2589.00            6.85              27063
23  24   天津  16311.34     1.0     1373.00           11.88              48976
24  25  黑龙江  15901.00     2.7     3125.00            5.09              28346
25  26   吉林  13070.24    -1.9     2375.37            5.50              27975
26  27   甘肃  11201.60     4.5     2490.02            4.50              23273
27  28   海南   6818.22     0.2     1020.46            6.68              30957
28  29   宁夏   5069.57     4.0      725.00            6.99              29599
29  30   青海   3610.10     2.3      594.00            6.08              27000
30  31   西藏   2132.64     1.1      366.00            5.83              26675
  1. info(),返回数据基本信息

info()方法可以返回一些DataFrame的基本信息,示例代码如下:

代码语言:python代码运行次数:0复制
import pandas as pd

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

print(df.info())

-----------------------------
输出结果如下:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 31 entries, 0 to 30  # 行数,31 行,第一行编号为 0
Data columns (total 7 columns):  # 列数,7列
 #   Column             Non-Null Count  Dtype  # # 各列的数据类型
---  ------             --------------  -----  
 0   排名                 31 non-null     int64  
 1   省份                 31 non-null     object 
 2   GDP                31 non-null     float64
 3   growth             31 non-null     float64
 4   Population         31 non-null     float64
 5   GDP per capita     31 non-null     float64  # non_null 非空数据
 6   Income per capita  31 non-null     int64  
dtypes: float64(4), int64(2), object(1)  # 类型
memory usage: 1.8  KB  # 占用内存
None

总结

本文主要介绍了pandas读取和写入csv数据的方法,并且介绍了查看头部和底部数据的方法,后续我们将介绍pandas处理JSON数据的相关方法。

0 人点赞