目录
概述
Dataframe是pandas库中的一个核心数据结构,用于存储和操作表格型数据。它是一个二维的、大小可变的、可以存储多种类型数据的表格型数据结构,类似于Excel中的表格或SQL中的表。Dataframe的每一列可以有不同的数据类型(如数值、字符串、布尔值等),而且行和列都有标签,这些标签可以作为数据的索引,方便用户进行数据的访问和操作。
Dataframe不仅提供了丰富的数据操作和分析功能,如数据排序、分组、聚合、合并等,还支持与其他数据结构的互操作性,如可以轻松地将Dataframe转换为NumPy数组、Python字典或SQL表等。这使得Dataframe成为数据科学、机器学习、统计分析等领域中不可或缺的工具。
总的来说,Dataframe是一个强大而灵活的数据结构,能够帮助用户高效地处理和分析大量数据,并以直观的方式展示结果。无论是数据清洗、转换还是统计分析,Dataframe都能提供便捷和强大的支持。
一、Dataframe 属性
首先我们先创建一个Dataframe
# 导入数据(以下代码均在jupyter notebook中运行)
import pandas as pd
data = pd.read_csv('/export/data/pandas_data/gapminder.tsv',sep= '\t')
# 查看数据
data
运行结果:
1. values:将DataFrame转换为NumPy数组的属性。
这个属性可以将DataFrame中的数据提取出来,转换为NumPy数组格式,方便进行数值计算和其他操作。
# 访问属性
# 将DataFrame转换为NumPy数组
values_array = data.values
print("values:\n", values_array)
运行结果:
2. axes:返回一个表示DataFrame轴的列表。
这通常包括行索引和列索引。
代码实现:
# 返回DataFrame的轴
axes_list = data.axes
print("axes:\n", axes_list)
运行结果:
3. columns:返回DataFrame的列标签。
这是一个Index对象,包含了所有列的名称。
代码实现:
# 返回列标签
columns_index = data.columns
print("columns:\n", columns_index)
运行结果:
4. dtypes:返回DataFrame中的数据类型。
这是一个Series,其索引是列,值是对应列的数据类型。
代码实现:
# 返回数据类型
dtypes_series = data.dtypes
print("dtypes:\n", dtypes_series)
运行结果:
5. empty:返回一个布尔值,表示DataFrame是否为空(即是否包含任何数据)。
代码实现:
# 检查DataFrame是否为空
is_empty = data.empty
print("empty:", is_empty)
运行结果:
6. index:返回DataFrame的行标签(索引)。
这也是一个Index对象。start为索引开始,stop为结束,step为步长
代码实现:
# 返回行标签(索引)
index_obj = data.index
print("index:\n", index_obj)
运行结果:
7. ndim:返回一个表示轴数(即数组的维数)的整数。
对于DataFrame,这通常是2,因为它是一个二维结构。
代码实现:
# 返回轴数
ndim_int = data.ndim
print("ndim:", ndim_int)
运行结果:
8. shape:返回一个表示DataFrame维数的元组。
例如,对于一个有m行和n列的DataFrame,shape将是(m, n)。
代码实现:
# 返回维数
shape_tuple = data.shape
print("shape:", shape_tuple)
运行结果:
9. size:返回一个整数,表示此对象中元素的数量。
这等于DataFrame的行数乘以列数。(代码见下方)
代码实现:
# 返回元素数量
size_int = data.size
print("size:", size_int)
运行结果:
二、Dataframe 创建
在pandas库中,创建Dataframe有多种方式。以下是几种常见的创建Dataframe的方法:
1. 从字典创建
使用字典来创建Dataframe是最常见的方法之一。字典的键将被用作列名,而字典的值(通常是列表或NumPy数组)将构成相应的列数据。
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 32, 18],
'City': ['New York', 'Paris', 'London']
}
df = pd.DataFrame(data)
print(df)
运行结果:
2. 从列表的列表创建
如果你有一个列表的列表,其中内部列表表示行,那么也可以很容易地创建Dataframe。
data = [
['Alice', 25, 'New York'],
['Bob', 32, 'Paris'],
['Charlie', 18, 'London']
]
# 列表的列表需要配合列名一起使用
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
运行结果
3. 从NumPy数组创建
如果你已经有NumPy数组,并且希望将它们转换为Dataframe,你可以这样做。
import numpy as np
# 创建一个NumPy数组
data = np.array([
['Alice', 25, 'New York'],
['Bob', 32, 'Paris'],
['Charlie', 18, 'London']
])
# NumPy数组也需要配合列名一起使用
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
运行结果:
4. 从Series对象创建
你还可以使用pandas的Series对象来创建Dataframe。
# 创建几个Series对象