Pandas 创建 DataFrame 的方法

Pandas 创建 DataFrame 的方法

参考:pandas create dataframe from another dataframe

Pandas 是一个强大的 Python 数据分析库,它提供了许多工具来处理和分析数据。其中,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 中的某些列。可以通过列名来选择需要的列。

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', 'City']]
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

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

我们可以根据条件过滤数据,创建包含特定行的新 DataFrame。

import pandas as pd

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

# 条件过滤
df_new = df_original[df_original['Age'] > 25]
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

4. 使用 lociloc 选择器

lociloc 选择器可以用来选择特定的行和列,创建新的 DataFrame。

import pandas as pd

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

# 使用 loc 选择器
df_new = df_original.loc[df_original['Age'] > 25, ['Name']]
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

import pandas as pd

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

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

Output:

Pandas 创建 DataFrame 的方法

5. 基于索引的选择

有时候,我们可能需要根据索引来创建新的 DataFrame。

import pandas as pd

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

# 基于索引的选择
df_new = df_original.loc['b':'c']
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

6. 使用 where 方法

where 方法可以用来根据条件过滤数据,未满足条件的行将被填充为 NaN。

import pandas as pd

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

# 使用 where 方法
df_new = df_original.where(df_original['Age'] > 25)
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

7. 使用 query 方法

query 方法提供了一种更易读的方式来选择数据。

import pandas as pd

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

# 使用 query 方法
df_new = df_original.query('Age > 25')
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

8. 使用 groupby 后选择

有时候,我们需要根据某些键对数据进行分组,然后再从每个组中选择数据。

import pandas as pd

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

# 使用 groupby 方法
grouped = df_original.groupby('Name')
df_new = grouped.get_group('Alice')
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

9. 使用 merge 创建新的 DataFrame

通过合并两个 DataFrame,我们可以创建一个包含两者数据的新 DataFrame。

import pandas as pd

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

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

Output:

Pandas 创建 DataFrame 的方法

10. 使用 concat 合并 DataFrame

concat 函数可以用来在轴向上合并多个 DataFrame。

import pandas as pd

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

# 合并 DataFrame
df_new = pd.concat([df1, df2])
print(df_new)

Output:

Pandas 创建 DataFrame 的方法

以上是使用 Pandas 从一个已存在的 DataFrame 创建新 DataFrame 的一些常见方法。每种方法都有其特定的应用场景,选择合适的方法可以使数据处理更加高效和方便。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程