软件测试|数据分析神器pandas教程(三)
  X7HGjGJ7MG9G 2023年11月02日 38 0

前言

前面我们介绍了pandas Series数据结构,本篇文章我们来介绍另外一种pandas数据结构——DataFrame。

DataFrame

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。如下图所示:

软件测试|数据分析神器pandas教程(三)_数据类型

软件测试|数据分析神器pandas教程(三)_数据类型_02

DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)
  • index:索引值,或者可以称为行标签
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n)
  • dtype:数据类型
  • copy:拷贝数据,默认为 False

下面是我们的一个简单实例:

import pandas as pd

data = [['Muller',33],['Sane',27],['Reus',30]]

df = pd.DataFrame(data,columns=['Player','Age'],dtype=float)

print(df)
------------
输出结果如下:
   Player   Age
0  Muller  33.0
1    Sane  27.0
2    Reus  30.0

同样,我们也可以使用ndarrays 创建DataFrame,代码如下

import pandas as pd

data = {'Player':['Muller', 'Sane', 'Reus'], 'Age':[33, 27, 30]}

df = pd.DataFrame(data,columns=['Player','Age'],dtype=float)

print(df)
-------------------------------------
输出结果如下:
   Player   Age
0  Muller  33.0
1    Sane  27.0
2    Reus  30.0

注:ndarray 的长度必须相同, 如果传递了 index,则索引的长度应等于数组的长度。如果没有传递索引,则默认情况下,索引将是range(n),其中n是数组长度。

从以上输出结果可以知道, DataFrame 数据类型一个表格,包含 rows(行) 和 columns(列):

软件测试|数据分析神器pandas教程(三)_数据结构_03

使用字典(key/value)创建DataFrame,代码如下:

import pandas as pd

data = [{'Muller': 18, 'Sane': 8}, {'Muller': 33, 'Sane': 27, 'Reus': 30}]

df = pd.DataFrame(data)
print(df)

--------------------------
输出结果如下:
   Muller  Sane  Reus
0      18     8   NaN
1      33    27  30.0

注:没有对应的部分数据为 NaN

Pandas 可以使用 loc 属性返回指定行的数据,如果没有设置索引,第一行索引为 0,第二行索引为 1,实例如下:

import pandas as pd

data = {
  "Goals": [27, 20, 18],
  "Asts": [20, 16, 12]
}

# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)

# 返回第一行
print(df.loc[0])
# 返回第二行
print(df.loc[1])
-----------------------
输出结果如下:
Goals    27
Asts     20
Name: 0, dtype: int64
Goals    20
Asts     16
Name: 1, dtype: int64

注:返回结果其实是一个 Pandas Series 数据。

也可以返回多行数据,使用 [[ ... ]] 格式,... 为各行的索引,以逗号隔开:

import pandas as pd

data = {
  "Goals": [27, 20, 18],
  "Asts": [20, 16, 12]
}

# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)

print(df.loc[[0,1]])

--------------------
输出结果如下:
   Goals  Asts
0     27    20
1     20    16

同样地,我们也可以指定索引值,代码如下:

import pandas as pd

data = {
  "goals": [35, 30, 28],
  "asts": [15, 20, 22]
}

df = pd.DataFrame(data, index = ["2020", "2021", "2022"])

print(df)
--------------------------------------------
输出结果如下:
      goals  asts
2020     35    15
2021     30    20
2022     28    22

同样地,我们可以通过索引来返回某一行的数据,代码如下:

import pandas as pd

data = {
  "goals": [35, 30, 28],
  "asts": [15, 20, 22]
}

df = pd.DataFrame(data, index = ["2020", "2021", "2022"])
print(df.loc["2020"])

---------------------------------------
输出结果如下:
goals    35
asts     15
Name: 2020, dtype: int64

总结

本文主要介绍了pandas的DataFrame数据结构,DataFrame是一个表格型的数据结构,也可以看做是由 Series 组成的字典,只是共用索引,DataFrame同样可以根据索引实返回指定数据。

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

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

暂无评论

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