当前位置: 首页 > news >正文

Python---数据分析(Pandas六:二维数组DataFrame,DataFrame的创建,DataFrame的属性)

一、 二维数组DataFrame

        DataFrame 是 Pandas 中的一个表格型的数据结构,包含有多列的数据,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。

二、DataFrame的创建

        在Pandas中,使用DataFrame来创建二维数组DataFrame

class pandas.DataFrame(data=None, index=None, columns=None, 
dtype=None, copy=None)
描述说明
data

列表,其中每个元素是一行数据。

字典,其中键是列名,值是列值(列表或数组)。

2d-Ndarray。

Series对象,每个 Series成为一列

index行标签,如果没有指定,默认是整数索引[0, ..., n-1],其中 n 是数据中的行数。
columns列标签,如果没有指定,则列标签从数据源中推断。
dtype指定某列的数据类型。如果指定,则所有列都将转换为指定的数据类型。
copy布尔值,默认为False。如果为True,则复制数据;如果为False,则尽可 能避免复制数据

2.1、使用列表创建

import pandas as pd

# 创建一个包含学生信息的嵌套列表,每个子列表代表一个学生的姓名、年龄和成绩
data_list = [
    ['小明', 20, 85],
    ['小红', 18, 90],
    ['小刚', 22, 88]
]

# 定义列名,分别对应姓名、年龄和成绩
columns = ['姓名', '年龄', '成绩']

# 使用pandas库创建一个DataFrame,将数据列表和列名作为参数传入
df = pd.DataFrame(data_list, columns=columns)

# 打印DataFrame以查看数据
print(df)

 

2.2、使用字典创建

        可以使用一个字典来创建DataFrame,其中字典的键将作为列名,字典的值可以是列 表、数组等可迭代对象,它们的长度要一致,代表每一列的数据。

import pandas as pd

# 定义一个字典,其中包含两组数据:姓名和年龄
data = {
    'Name': ['Tom', 'Nick', 'John'],  # 'Name' 键对应一个包含姓名的列
    'Age': [20, 21, 22]               # 'Age' 键对应一个包含年龄的列
}

# 使用pd.DataFrame()函数将字典转换为DataFrame对象
# 这里,data字典中的键自动成为DataFrame的列名,值成为列的数据
df = pd.DataFrame(data)

# 打印DataFrame对象,查看其内容
print(df)

2.3、使用Ndarray数组创建

import pandas as pd

# 创建三个pandas Series对象
s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
s2 = pd.Series([20, 18, 22], name='年龄')
s3 = pd.Series([85, 90, 88], name='成绩')

# 将Series对象组合成一个字典,键是Series的名称,值是Series本身
# 然后将这个字典传递给DataFrame构造函数来创建一个DataFrame
df = pd.DataFrame({s1.name: s1, s2.name: s2, s3.name: s3})

# 打印DataFrame对象,查看其内容
print(df)

 

import pandas as pd
import numpy as np

# 定义一个二维Ndarray数组,其中包含两组数据:姓名和年龄
data_array = np.array([
    ['Tom', 20],
    ['Nick', 21],
    ['John', 19]
])

# 使用pd.DataFrame()函数将二维数组转换为DataFrame对象
df = pd.DataFrame(data_array, columns=['Name', 'Age'])

# 打印
print(df)

2.4、使用Series创建

        如果有多个Series对象,也可以将它们组合成一个DataFrame。

import pandas as pd
 
# 创建三个pandas Series对象
s1 = pd.Series(['小明', '小红', '小刚'], name='姓名')
s2 = pd.Series([20, 18, 22, 0], name='年龄')
s3 = pd.Series([85, 90, 88], name='成绩')
s4 = pd.Series(name='test')
 
# 使用concat拼接,并指定轴为1
df = pd.concat([s1, s2, s3, s4], axis=1)
 
# 打印DataFrame对象,查看其内容
print(df)

三、DataFrame的属性

import pandas as pd

data = {
    '姓名': ['小明', '小红', '小刚'],
    '年龄': [20, 18, 22],
    '成绩': [85, 90, 88]
}

df = pd.DataFrame(data, index=[3, 4, 5])
print(df)

3.1、 index

        返回DataFrame的行索引。

print(df.index)
#Index([3, 4, 5], dtype='int64')

3.2、 columns

        返回DataFrame的列名。

print(df.columns)
#Index(['姓名', '年龄', '成绩'], dtype='object')

3.3、 values

        返回DataFrame中数据的Ndarray表示

print(df.values)
# [['小明' 20 85]
#  ['小红' 18 90]
#  ['小刚' 22 88]]

3.4、 dtypes

        返回每列的数据类型。

print(df.dtypes)
# 姓名    object
# 年龄     int64
# 成绩     int64
# dtype: object

3.5 、shape

        返回DataFrame的形状(行数,列数)。

print(df.shape)
#(3, 3)

3.6、 size

        返回DataFrame中的元素数量。

print(df.size)
#9

3.7、 empty

        返回DataFrame是否为空。

import pandas as pd
import numpy as np

data = [None]

df = pd.DataFrame(data, index=['a'])
print(df)

print(df.empty)

3.8 、T

        返回DataFrame的转置。

import pandas as pd

data = {
    '姓名': ['小明', '小红', '小刚'],
    '年龄': [20, 18, 22],
    '成绩': [85, 90, 88]
}

df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)

res = df.T
print(res)

3.9、 axes

        返回行轴和列轴的列表。

import pandas as pd

data = {
    '姓名': ['小明', '小红', '小刚'],
    '年龄': [20, 18, 22],
    '成绩': [85, 90, 88]
}

df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)

print(df.axes)

3.10、 ndim

        返回DataFrame的维度数。对于标准的二维DataFrame,这个值通常是2。

import pandas as pd
data = {
'姓名': ['小明', '小红', '小刚'],
'年龄': [20, 18, 22],
'成绩': [85, 90, 88]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)
print(df.ndim)

3.11 、attrs

        允许用户存储DataFrame的元数据,它是一个字典,可以用来存储任意与 DataFrame相关的额外信息。

import pandas as pd
 
data = {
    '姓名': ['小明', '小红', '小刚'],
    '年龄': [20, 18, 22],
    '成绩': [85, 90, 88]
}
 
df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df)
 
df.attrs['creator'] = '哈哈哈哈哈哈哈哈哈哈哈'
df.attrs['created_at'] = '2025-3-8'
print(df.attrs)

相关文章:

  • CSS实现当鼠标悬停在一个元素上时,另一个元素的样式发生变化的效果
  • 前端网络请求
  • 面向对象(进阶)(‘封装‘,‘多态‘,‘对象属性‘,‘类属性‘,‘类方法‘,‘对象方法‘及其应用场景)
  • 糊涂人寄信——递推
  • 算法设计与分析——动态规划
  • KnowGPT知识图谱整合
  • 深入浅出理解LLM PPO:基于verl框架的实现解析之一
  • Java并发编程面试题:锁(17题)
  • c++ 数组索引越界检查
  • 解决 C 盘空间不足,免费软件高效清理
  • Python 用户账户(创建用户账户)
  • GaussDB构建高性能Schema:分布式数据库架构设计与实战
  • python NameError报错之导库报错
  • C++代码2-多目标算法求解车辆路径规划
  • 阻止 Mac 在运行任务时进入休眠状态
  • Linux python 安装 conda(内部自带的有python的版本了)
  • 通俗详解redis底层数据结构哈希表之渐进式rehash
  • Windows10配置OpenJDK11
  • VSCode下载安装指南
  • 零、ubuntu20.04 安装 anaconda
  • 证监会:2024年依法从严查办证券期货违法案件739件,作出处罚决定592件、同比增10%
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部
  • 中国结算澄清“严查场外配资”传闻:账户核查为多年惯例,无特殊安排
  • 德国总理默茨发表首份政府声明:将提升国防能力,全力发展经济
  • 金砖国家召开经贸联络组司局级特别会议,呼吁共同抵制单边主义和贸易保护主义
  • 冰雹造成车损能赔吗?如何理赔?机构答疑