Pandas 从系列创建一个数据框
在数据科学中,数据以各种不同的格式表示,如表格、图形或任何其他类型的结构。用于表示数据的最常见数据结构之一是数据框(DataFrame),可以使用数组或系列创建。在本文档中,我们将讨论如何从Pandas Series对象创建数据框。
数据科学中数据框的重要性
数据框是一种广泛用于数据科学的二维表状数据结构。它是数据操纵、数据分析和数据可视化的非常重要的工具。以下是在数据科学中使用数据框的一些关键优点:
- 简单的数据操纵 - 数据框可以轻松操纵数据,包括添加或删除行和列、过滤和排序数据以及合并来自不同来源的数据。
-
高效处理大型数据集 - 数据框被设计为高效处理大型数据集,非常适用于数据分析任务。
-
与其他数据科学工具的轻松集成 - 数据框可以轻松集成其他数据科学工具,如NumPy、Pandas和Matplotlib,从而更容易执行复杂的数据分析任务。
-
易于阅读和理解 - 数据框易于阅读和理解,使其成为数据可视化和演示的强大工具。
-
灵活性 - 数据框在数据类型和操作方面具有很大的灵活性,可以执行各种数据分析任务。
Pandas系列是什么
Series是一个一维带标签的数组,可以容纳任何数据类型(整数、字符串、浮点数等)。它类似于表中的一列或R编程语言中的向量。系列中的每个值都与一个称为索引的标签相关联。默认情况下,系列的索引从零开始,到n-1,其中n是系列中的元素数。
Pandas的关键优势是什么
- 数据操纵 - Pandas提供了一系列强大而灵活的用于操纵数据的函数,包括选择、过滤、转换和聚合数据。这些函数对数据清洗和预处理至关重要,这是数据分析中的重要步骤。
-
数据集成 - Pandas使得从不同的来源和格式(包括CSV、Excel、SQL数据库和JSON)集成数据变得容易。它还支持从不同的来源合并和连接数据,这对于处理大型和复杂的数据集非常重要。
-
数据可视化 - Pandas提供了强大的数据可视化工具,包括折线图、散点图、直方图和条形图。这些可视化对于探索和理解数据至关重要,它们可以帮助识别原始数据中不明显的模式和趋势。
从系列创建数据框
要从系列创建一个数据帧,我们首先需要创建一个Pandas系列对象。可以通过将值列表传递给pd.Series()
方法来创建一个系列对象。
示例
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50])
print(s)
输出
0 10
1 20
2 30
3 40
4 50
dtype: int64
这将创建一个具有默认索引的系列对象。要为系列对象分配名称,我们可以使用name
参数。
示例
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50], name="Numbers")
print(s)
输出
0 10
1 20
2 30
3 40
4 50
Name: Numbers, dtype: int64
这将创建一个名为”Numbers”的系列对象。
现在,我们可以使用pd.DataFrame()
方法从系列对象创建一个数据帧。例如,
df = pd.DataFrame(s)
这将创建一个有两列的DataFrame:一列是索引,一列是系列中的值。要为包含系列中值的列赋予一个名称,我们可以使用 columns
参数。例如,
df = pd.DataFrame(s, columns=["Values"])
这将创建一个名为“Values”的列的DataFrame。
使用多个Series创建DataFrame
有时候我们想要将多个series组合成一个单独的DataFrame。例如,考虑以下两个series:
s1 = pd.Series([10, 20, 30, 40, 50], name="Numbers")
s2 = pd.Series(["apple", "orange", "banana", "grape", "watermelon"], name="Fruits")
使用这两个序列创建DataFrame,我们可以使用pd.concat()
方法,如下所示:
df = pd.concat([s1, s2], axis=1)
print(df)
这将创建一个具有两列的DataFrame:一个用于数字,一个用于水果。
输出
Numbers Fruits
0 10 apple
1 20 orange
2 30 banana
3 40 grape
4 50 watermelon
在现有的DataFrame中添加新列
当我们有一个DataFrame并且想要向其添加一个新的列时,我们可以通过创建一个新的series对象,然后使用pd.concat()
方法沿列轴连接两个数据帧来实现。
示例
import pandas as pd
df = pd.DataFrame({"Numbers": [10, 20, 30, 40, 50], "Fruits": ["apple", "orange", "banana", "grape", "watermelon"]})
new_col = pd.Series([5, 4, 3, 2, 1], name="Ranks")
df = pd.concat([df, new_col], axis=1)
print(df)
这将创建一个带有三列的DataFrame:“Numbers”,“Fruits”和“Ranks”。
输出
Numbers Fruits Ranks
0 10 apple 5
1 20 orange 4
2 30 banana 3
3 40 grape 2
4 50 watermelon 1
在每个章节中,我们可以看到一个输出,以增加理解。
最终代码
这是所有可用代码的组合。
# Creating a DataFrame from a Series
import pandas as pd
s = pd.Series([10, 20, 30, 40, 50])
print(s)
s = pd.Series([10, 20, 30, 40, 50], name="Numbers")
print(s)
# Using Multiple Series to create a DataFrame
s1 = pd.Series([10, 20, 30, 40, 50], name="Numbers")
s2 = pd.Series(["apple", "orange", "banana", "grape", "watermelon"], name="Fruits")
df = pd.concat([s1, s2], axis=1)
print(df)
# Adding a new column to an existing DataFrame
df = pd.DataFrame({"Numbers": [10, 20, 30, 40, 50], "Fruits": ["apple", "orange", "banana", "grape", "watermelon"]})
new_col = pd.Series([5, 4, 3, 2, 1], name="Ranks")
df = pd.concat([df, new_col], axis=1)
print(df)
输出
0 10
1 20
2 30
3 40
4 50
dtype: int64
0 10
1 20
2 30
3 40
4 50
Name: Numbers, dtype: int64
Numbers Fruits
0 10 apple
1 20 orange
2 30 banana
3 40 grape
4 50 watermelon
Numbers Fruits Ranks
0 10 apple 5
1 20 orange 4
2 30 banana 3
3 40 grape 2
4 50 watermelon 1
结论
DataFrame是一个强大的数据结构,可以从各种数据源创建。在本文中,我们讨论了如何从Pandas系列对象创建DataFrame。我们还讨论了如何使用多个系列创建DataFrame以及如何向现有DataFrame添加新列。通过使用这些技术,我们可以高效地将原始数据转换为结构化数据集,以供进一步分析使用。在本文中,我们还介绍了Pandas DataFrame以及Python编程语言中的Pandas库的重要性。