软件测试|数据处理神器pandas教程(四)
  X7HGjGJ7MG9G 2023年11月02日 43 0

软件测试|数据处理神器pandas教程(四)_示例代码

前言

很多时候,我们使用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()即可以读取数据,下面是我们的读取实例,代码如下:

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()即可,示例代码如下:

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文件的内容如下图:

软件测试|数据处理神器pandas教程(四)_示例代码_02

数据处理

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

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

# 读取前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
# 读取前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。

#  读取末尾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
# 输出后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的基本信息,示例代码如下:

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数据的相关方法。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  SBowDWXjb0NT   2023年11月30日   41   0   0 redis线程池数据
X7HGjGJ7MG9G
最新推荐 更多