详解PandasSeries与DataFrame的常用属性及实例 📊🐼
在数据分析领域,Pandas作为Python中最重要的库之一,其核心数据结构——Series和DataFrame——为数据操作和分析提供了强大的工具。掌握这些数据结构的常用属性,能够极大提升数据处理的效率和准确性。本文将详细介绍Series与DataFrame的常用属性,并通过实例加以说明,帮助您全面理解和应用这些数据结构。
📋 目录
Pandas Series 概述
Series是Pandas中最基本的数据结构之一,它是一种一维的标签化数组,可以存储任何数据类型(整数、字符串、浮点数、Python对象等)。每个元素都有一个对应的标签(索引),使得数据访问更加灵活和便捷。
Pandas DataFrame 概述
DataFrame是Pandas中另一种核心数据结构,类似于电子表格或SQL表。它是一个二维的标签化数据结构,由多列组成,每列可以是不同的数据类型。DataFrame提供了丰富的方法和属性,方便进行数据操作、清洗和分析。
Series 的常用属性及实例
index
📍
index
属性返回Series对象的索引。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series([100, 200, 300], index=['a', 'b', 'c'])
print(data.index)
输出
Index(['a', 'b', 'c'], dtype='object')
解释:
data.index
返回Series的索引['a', 'b', 'c']
。
values
🧮
values
属性返回Series对象的值。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
print(data.values)
输出
[10 20 30]
解释:
data.values
返回Series的值[10, 20, 30]
。
dtype
🧬
dtype
属性返回Series对象的数据类型。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series([1.5, 2.5, 3.5])
print(data.dtype)
输出
float64
解释:
data.dtype
返回Series的数据类型float64
。
name
🏷️
name
属性可以获取或设置Series的名称。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series([5, 10, 15], index=['a', 'b', 'c'])
data.name = 'Numbers'
print(data)
print("Series Name:", data.name)
输出
a 5
b 10
c 15
Name: Numbers, dtype: int64
Series Name: Numbers
解释:
data.name = 'Numbers'
为Series命名为Numbers
。data.name
返回Series的名称Numbers
。
size
📏
size
属性返回Series中元素的数量。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series([7, 14, 21, 28])
print(data.size)
输出
4
解释:
data.size
返回Series中元素的数量4
。
shape
📐
shape
属性返回Series的形状(即元素数量)。
示例代码
import pandas as pd
# 创建一个Series
data = pd.Series(['apple', 'banana', 'cherry'])
print(data.shape)
输出
(3,)
解释:
data.shape
返回Series的形状(3,)
,表示一维有3个元素。
DataFrame 的常用属性及实例
columns
🗂️
columns
属性返回DataFrame的列标签。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df.columns)
输出
Index(['Name', 'Age'], dtype='object')
解释:
df.columns
返回DataFrame的列标签['Name', 'Age']
。
index
📍
index
属性返回DataFrame的行索引。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['David', 'Eva', 'Frank'],
'Age': [40, 45, 50]
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])
print(df.index)
输出
Index(['a', 'b', 'c'], dtype='object')
解释:
df.index
返回DataFrame的行索引['a', 'b', 'c']
。
dtypes
🧬
dtypes
属性返回DataFrame中各列的数据类型。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['George', 'Hannah', 'Ian'],
'Age': [28, 32, 40],
'Salary': [50000.0, 60000.5, 70000.75]
}
df = pd.DataFrame(data)
print(df.dtypes)
输出
Name object
Age int64
Salary float64
dtype: object
解释:
df.dtypes
显示每列的数据类型,Name
为object
,Age
为int64
,Salary
为float64
。
shape
📐
shape
属性返回DataFrame的形状(行数和列数)。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Product': ['Laptop', 'Tablet', 'Smartphone'],
'Price': [1200, 600, 800]
}
df = pd.DataFrame(data)
print(df.shape)
输出
(3, 2)
解释:
df.shape
返回DataFrame的形状(3, 2)
,表示3行2列。
size
📏
size
属性返回DataFrame中元素的总数量。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'City': ['New York', 'Los Angeles'],
'Population': [8419000, 3980000]
}
df = pd.DataFrame(data)
print(df.size)
输出
4
解释:
df.size
返回DataFrame中元素的总数量4
。
values
🧮
values
属性返回DataFrame的值,以Numpy数组形式展示。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Country': ['USA', 'Canada'],
'Capital': ['Washington D.C.', 'Ottawa']
}
df = pd.DataFrame(data)
print(df.values)
输出
[['USA' 'Washington D.C.']
['Canada' 'Ottawa']]
解释:
df.values
返回DataFrame的值[['USA', 'Washington D.C.'], ['Canada', 'Ottawa']]
。
head
👀
head
方法返回DataFrame的前几行,默认显示前5行。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Employee': ['John', 'Jane', 'Mike', 'Anna', 'Tom', 'Sara'],
'Department': ['HR', 'Finance', 'IT', 'Marketing', 'IT', 'Finance']
}
df = pd.DataFrame(data)
print(df.head(3))
输出
Employee Department
0 John HR
1 Jane Finance
2 Mike IT
解释:
df.head(3)
返回DataFrame的前3行。
tail
👀
tail
方法返回DataFrame的后几行,默认显示最后5行。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Product': ['A', 'B', 'C', 'D', 'E'],
'Sales': [100, 150, 200, 250, 300]
}
df = pd.DataFrame(data)
print(df.tail(2))
输出
Product Sales
3 D 250
4 E 300
解释:
df.tail(2)
返回DataFrame的最后2行。
info
ℹ️
info
方法提供DataFrame的简要概述,包括索引、数据类型、非空值数量等信息。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
df.info()
输出
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 3 non-null object
1 Age 3 non-null int64
2 City 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
解释:
df.info()
提供DataFrame的详细信息,包括每列的非空值数量和数据类型。
describe
📈
describe
方法生成DataFrame中数值列的统计摘要,包括计数、均值、标准差、最小值、四分位数和最大值。
示例代码
import pandas as pd
# 创建一个DataFrame
data = {
'Score': [85, 90, 78, 92, 88, 76]
}
df = pd.DataFrame(data)
print(df.describe())
输出
Score
count 6.000000
mean 84.166667
std 6.732272
min 76.000000
25% 78.500000
50% 85.000000
75% 88.500000
max 92.000000
解释:
df.describe()
生成数值列Score
的统计摘要。
常见问题与解答 ❓
问题一:Series和DataFrame的主要区别是什么?
解答:
- Series是一维的标签化数组,适用于存储单一类型的数据。
- DataFrame是二维的标签化数据结构,类似于表格,适用于存储多种类型的数据。
问题二:如何在创建DataFrame时指定行索引?
解答: 在创建DataFrame时,可以通过 index
参数指定行索引。例如:
import pandas as pd
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data, index=['id1', 'id2'])
print(df)
输出:
Name Age
id1 Alice 25
id2 Bob 30
问题三:如何修改Series的索引?
解答: 可以通过 Series.index
属性直接修改索引。例如:
import pandas as pd
series = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
series.index = ['x', 'y', 'z']
print(series)
输出:
x 1
y 2
z 3
dtype: int64
总结 ✅
Pandas中的Series和DataFrame是数据分析中不可或缺的工具。通过掌握这些数据结构的常用属性,您可以更高效地进行数据操作和分析。无论是简单的一维数据存储还是复杂的多维数据管理,Series和DataFrame都能提供强大的支持。持续练习和应用这些属性,将显著提升您的数据处理能力和分析效率。📈🔍