Pandas 创建 DataFrame 的方法

Pandas 创建 DataFrame 的方法

参考:pandas create dataframe from another dataframe

Pandas 是一个强大的 Python 数据分析库,它提供了许多工具来处理和分析数据。其中,DataFrame 是 Pandas 中最核心的数据结构,它是一个二维的、大小可变的、异质型表格。在实际应用中,我们经常需要从一个已存在的 DataFrame 创建一个新的 DataFrame。本文将详细介绍如何使用 Pandas 从一个 DataFrame 创建另一个 DataFrame,并提供多个示例代码。

1. 直接复制 DataFrame

最简单的创建新 DataFrame 的方法是直接复制一个已存在的 DataFrame。这可以通过使用 copy() 方法实现。

import pandas as pd

# 创建一个原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df_original = pd.DataFrame(data)

# 复制 DataFrame
df_new = df_original.copy()

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

2. 选择特定的列创建新 DataFrame

如果你只需要原始 DataFrame 中的某些列,可以通过列名来选择这些列创建新的 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 选择特定的列
df_new = df_original[['Name', 'Age']]

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

3. 使用条件过滤创建新 DataFrame

通过对原始 DataFrame 应用条件过滤,可以创建包含特定行的新 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 应用条件过滤
df_new = df_original[df_original['Age'] > 25]

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

4. 使用 lociloc 选择器

lociloc 选择器可以用来从原始 DataFrame 中选择行和列,创建新的 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 使用 loc 选择器
df_new = df_original.loc[:, ['Name', 'City']]

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 使用 iloc 选择器
df_new = df_original.iloc[:, [0, 2]]

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

5. 使用 drop 方法删除列

有时候,我们需要从原始 DataFrame 中删除某些列来创建新的 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 删除列
df_new = df_original.drop(columns=['Age'])

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

6. 使用 assign 方法添加新列

assign 方法可以用来向 DataFrame 添加新的列。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df_original = pd.DataFrame(data)

# 添加新列
df_new = df_original.assign(City=['New York', 'Los Angeles', 'Chicago'])

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

7. 使用 query 方法进行复杂条件过滤

query 方法允许你使用字符串表达式来过滤 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']}
df_original = pd.DataFrame(data)

# 使用 query 方法
df_new = df_original.query("Age >= 30 and City == 'Los Angeles'")

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

8. 使用 merge 方法合并 DataFrame

如果你有两个相关的 DataFrame,可以使用 merge 方法将它们合并为一个新的 DataFrame。

import pandas as pd

# 创建两个 DataFrame
data1 = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
data2 = {'Name': ['Alice', 'Bob'], 'City': ['New York', 'Los Angeles']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 合并 DataFrame
df_new = pd.merge(df1, df2, on='Name')

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

9. 使用 concat 方法连接 DataFrame

concat 方法可以用来在轴向上连接多个 DataFrame。

import pandas as pd

# 创建两个 DataFrame
data1 = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
data2 = {'Name': ['Charlie', 'David'], 'Age': [35, 40]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 连接 DataFrame
df_new = pd.concat([df1, df2], ignore_index=True)

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

10. 使用 groupbyagg 方法进行分组和聚合

通过 groupby 方法可以对 DataFrame 进行分组,并使用 agg 方法进行聚合操作,从而创建新的 DataFrame。

import pandas as pd

# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Alice', 'Bob'], 'Score': [85, 90, 95, 88]}
df_original = pd.DataFrame(data)

# 分组并聚合
df_new = df_original.groupby('Name').agg({'Score': 'mean'})

print(df_new)

Output:

Pandas 创建 DataFrame 的方法

以上是从一个 DataFrame 创建另一个 DataFrame 的一些常用方法和示例。通过这些方法,你可以灵活地处理和分析数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程