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

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)


http://www.kler.cn/a/596152.html

相关文章:

  • 如何在 HTML 中创建一个有序列表和无序列表,它们的语义有何不同?
  • ESP32-C6助力设备互联互通,Wi-Fi6无线通信方案,物联网交互联动
  • 卸载conda,poetry常用命令,vscode使用poetry虚拟环境
  • EmbodiedSAM:在线实时3D实例分割,利用视觉基础模型实现高效场景理解
  • AWS大数据解决方案实战解析:如何以低成本驱动企业数据智能升级
  • 电脑磁盘分盘
  • 大模型微调之早停(Early Stopping)
  • 避坑指南 | 阿里云服务器centos7上MySQL部署优化指南
  • 阶跃星辰开源300亿参数视频模型Step-Video-TI2V:运动可控+102帧长视频生成
  • 量化研究---可转债量化交易系统上线快速服务器
  • 003-掌控命令行-CLI11-C++开源库108杰
  • Spring Boot 中的 @ConditionalOnBean 注解详解
  • 第一次烧录51单片机的烧录不了的问题
  • 验证码设计与前端安全:实现方式、挑战与未来发展趋势深度分析
  • 架构师面试(十九):IM 架构
  • [leetcode]864. 获取所有钥匙的最短路径(状态压缩bitmask+bfs)
  • 从两层 C/S 到 B/S 架构演进分析:技术驱动与业务需求的辩证关系
  • 归并排序的思路与实现
  • 卷积神经网络Batch Normalization的作用
  • 体育直播视频源格式解析:M3U8 vs FLV