【Pandas数据分析1】pandas数据结构

简介: 【Pandas数据分析1】pandas数据结构

一、pandas数据结构

1、Series对象

  • pandas库中的一种数据结构,类似于一维数组,由一组数据以及与这组数据有关的标签(索引)组成。
  • Series对象可以存储整数、浮点数、字符串、python对象等多种数据类型的数据。

1.1 创建Series对象

pd.Series(data, index)
# data 数据
# index 索引
import pandas as pd
data = ['李光地', '张红云', '王鹏']
s = pd.Series(data=data, index=[1, 2, 3]) # 若不使用index,默认从0开始
print(s)
print(type(s))
1    李光地
2    张红云
3     王鹏
dtype: object
<class 'pandas.core.series.Series'>

注:也可手动修改索引(索引不一定为数字)。

import pandas as pd
data = ['李光地', '张红云', '王鹏']
index = ['哈', '嘿', 'nao']
s = pd.Series(data=data, index=index)
print(s)
哈      李光地
嘿      张红云
nao     王鹏
dtype: object

1.2 索引

1.2.1 位置索引

import pandas as pd
data = ['李光地', '张红云', '王鹏']
s = pd.Series(data=data)
print(s[0])
李光地

1.2.2 标签索引

import pandas as pd
data = [333, 4444, 55555]
index = ['张三', '李四', '王五']
s = pd.Series(data=data, index=index)
print(s['李四'])
4444

获取多个标签索引值使用 [[标签索引1,标签索引2,…]],如下所示:

import pandas as pd
data = [333, 4444, 55555]
index = ['张三', '李四', '王五']
s = pd.Series(data=data, index=index)
# print(s['李四'])
print(s[['张三', '王五']])
张三      333
王五    55555
dtype: int64

1.2.3 切片索引

import pandas as pd
data = ['李光地', '张红云', '王鹏']
s = pd.Series(data=data)
print(s[0:2:1])
0    李光地
1    张红云
dtype: object

也可以对标签索引进行切片:

import pandas as pd
data = [333, 4444, 55555]
index = ['张三', '李四', '王五']
s = pd.Series(data=data, index=index)
print(s['张三':'王五':1])
张三      333
李四     4444
王五    55555
dtype: int64

注意:

  • 位置索引进行切片:含头不含尾
  • 标签索引进行切片:含头含尾

1.2.4 获取Series的索引和值

import pandas as pd
data = [333, 4444, 55555]
index = ['张三', '李四', '王五']
s = pd.Series(data=data, index=index)
print(s.index)
print(list(s.index))
print(s.values)
print(type(s.values))
Index(['张三', '李四', '王五'], dtype='object')
['张三', '李四', '王五']
[  333  4444 55555]
<class 'numpy.ndarray'>

2、DataFrame对象

  • pandas库中的一种数据结构,类似于二维表,由行和列组成。
  • 与Series对象一样,支持多种数据类型。

2.1 创建DataFrame对象

pd.DataFrame(data, index, columns, dtype)
# data 数据
# index 行索引
# columns 列索引
# dtype 每一列数据的数据类型

2.1.1 列表方式

import pandas as pd
data = [['小太阳', 320.9, 100], ['鼠标', 150.3, 50], ['小刀', 1.5, 200]]
columns = ['名称', '单价', '数量']
df = pd.DataFrame(data=data, columns=columns)
print(df)
print(type(df))
名称     单价   数量
0  小太阳  320.9  100
1   鼠标  150.3   50
2   小刀    1.5  200
<class 'pandas.core.frame.DataFrame'>

2.1.2 字典方式

import pandas as pd
data = {
    '名称': ['小太阳', '鼠标', '小刀'],
    '单价': [320.9, 150.3, 1.5],
    '数量': [100, 50, 200]
}
df = pd.DataFrame(data=data)
print(df)
名称     单价   数量
0  小太阳  320.9  100
1   鼠标  150.3   50
2   小刀    1.5  200

2.1.3 注意事项

当使用字典方式创建DataFrame对象时:

(1)如果列表(值)长度不一致,会报错ValueError: All arrays must be of the same length

import pandas as pd
data = {
    '名称': ['小太阳', '鼠标', '小刀', '铅笔'], # 多一个铅笔
    '单价': [320.9, 150.3, 1.5],
    '数量': [100, 50, 200]
}
df = pd.DataFrame(data=data)
print(df)
Traceback (most recent call last):
...
ValueError: All arrays must be of the same length

(2)如果值是单个数据,则会自动添加

import pandas as pd
data = {
    '名称': ['小太阳', '鼠标', '小刀'],
    '单价': [320.9, 150.3, 1.5],
    '数量': [100, 50, 200],
    '公司': '东门超市'
}
df = pd.DataFrame(data=data)
print(df)
名称     单价   数量    公司
0  小太阳  320.9  100  东门超市
1   鼠标  150.3   50  东门超市
2   小刀    1.5  200  东门超市

2.2 DataFrame重要属性

序号 属性 描述
1 values 查看所有元素的值
2 dtypes 查看所有元素的类型
3 index 查看所有行名、重命名行名
4 columns 查看所有列名、重命名列名
5 T 行列数据转换
6 head 查看前N条数据,默认5条
7 tai 查看后N条数据,默认5条
8 shape 查看行数和列数:shape[0]表示行,shape[1]表示列
9 info 查看索引、数据类型和内存信息
import pandas as pd
data = [['小太阳', 320.9, 100], ['鼠标', 150.3, 50], ['小刀', 1.5, 200]]
columns = ['名称', '单价', '数量']
df = pd.DataFrame(data=data, columns=columns)
print(df)
名称     单价   数量
0  小太阳  320.9  100
1   鼠标  150.3   50
2   小刀    1.5  200

1、查看所有元素的值:

print(df.values)
[['小太阳' 320.9 100]
 ['鼠标' 150.3 50]
 ['小刀' 1.5 200]]

2、查看所有元素的类型:

print(df.dtypes)
名称     object
单价    float64
数量      int64
dtype: object

3、查看所有行名:

print(df.index)
print(list(df.index))
RangeIndex(start=0, stop=3, step=1)
[0, 1, 2]

4、查看所有列名:

print(df.columns)
Index(['名称', '单价', '数量'], dtype='object')

5、行列数据转换:

pd.set_option('display.unicode.east_asian_width', True)  # 规整格式
new_df = df.T
print(new_df)
0      1     2
名称  小太阳   鼠标  小刀
单价   320.9  150.3   1.5
数量     100     50   200

6、查看前N条数据:

print(df.head(1))
名称     单价   数量
0  小太阳  320.9  100

7、查看后N条数据:

print(df.tail(1))
名称   单价   数量
2  小刀  1.5  200

8、查看行数和列数:

print('行', df.shape[0], '列', df.shape[1])
行 3 列 3

9、查看索引、数据类型和内存信息:

print(df.info)
<bound method DataFrame.info of     名称     单价   数量
0  小太阳  320.9  100
1   鼠标  150.3   50
2   小刀    1.5  200>

2.3 DataFrame重要函数

序号 函数 描述
1 describe() 查看每列的统计汇总信息,DataFrame类型
2 count() 返回每一列的非空值的个数
3 sum() 返回每一列的和,无法计算返回空值
4 max() 返回每一列的最大值
5 min() 返回每一列的最小值
import pandas as pd
data = [['小太阳', 320.9, 100], ['鼠标', 150.3, 50], ['小刀', 1.5, 200]]
columns = ['名称', '单价', '数量']
df = pd.DataFrame(data=data, columns=columns)
print(df)
# 1、查看每列的统计汇总信息:
print(df.describe())
# 2、返回每一列的非空值的个数:
print(df.count())
# 3、返回每一列的和:
print(df.sum())
# 4、返回每一列的最大值:
print(df.max())
# 5、返回每一列的最小值:
print(df.min())
名称     单价   数量
0  小太阳  320.9  100
1   鼠标  150.3   50
2   小刀    1.5  200
               单价          数量
count    3.000000    3.000000
mean   157.566667  116.666667
std    159.823945   76.376262
min      1.500000   50.000000
25%     75.900000   75.000000
50%    150.300000  100.000000
75%    235.600000  150.000000
max    320.900000  200.000000
名称    3
单价    3
数量    3
dtype: int64
名称    小太阳鼠标小刀
单价      472.7
数量        350
dtype: object
名称       鼠标
单价    320.9
数量      200
dtype: object
名称     小刀
单价    1.5
数量     50
dtype: object


目录
相关文章
|
15天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
45 0
|
13天前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
32 2
Pandas 数据结构 - DataFrame
|
13天前
|
索引 Python
Pandas 数据结构 - Series
10月更文挑战第26天
29 2
Pandas 数据结构 - Series
|
9天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
22 2
|
16天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
30 2
|
23天前
|
数据采集 数据可视化 数据挖掘
Pandas数据结构
‌Pandas提供了两种主要的数据结构
|
7天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
7天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
47 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
40 1

热门文章

最新文章