📌  相关文章
📜  pandas 子数据框 - Python (1)

📅  最后修改于: 2023-12-03 14:45:03.727000             🧑  作者: Mango

pandas 子数据框 - Python

在数据分析中,我们通常需要从大型数据集中提取子集以进行分析。Pandas 库提供了各种方法来创建、选择和修改子数据框。在本文中,我们将涵盖以下内容:

  • 创建子数据框
  • 选择列
  • 选择行
  • 过滤
  • 修改数据框
创建子数据框

要创建子数据框,我们可以使用以下方法之一:

  • 使用列名称列表创建新的数据框
  • 使用 iloc 或 loc 方法选择子集
import pandas as pd

# 创建示例数据框
data = {'name': ['Tom', 'Jerry', 'Lucy', 'Kate', 'Lily'],
        'age': [21, 22, 20, 23, 24],
        'country': ['USA', 'Canada', 'China', 'UK', 'Australia']}
df = pd.DataFrame(data)

# 通过列表创建子数据框
sub_df1 = df[['name', 'age']]
print(sub_df1)

# 通过 iloc 方法选择子数据框
sub_df2 = df.iloc[:, :2]
print(sub_df2)

# 通过 loc 方法选择子数据框
sub_df3 = df.loc[:, ['name', 'age']]
print(sub_df3)

Markdown:

使用列名称列表创建新的数据框

| | name | age | |---:|:-------|------:| | 0 | Tom | 21 | | 1 | Jerry | 22 | | 2 | Lucy | 20 | | 3 | Kate | 23 | | 4 | Lily | 24 |

使用 iloc 方法选择子数据框

| | name | age | |---:|:-------|------:| | 0 | Tom | 21 | | 1 | Jerry | 22 | | 2 | Lucy | 20 | | 3 | Kate | 23 | | 4 | Lily | 24 |

使用 loc 方法选择子数据框

| | name | age | |---:|:-------|------:| | 0 | Tom | 21 | | 1 | Jerry | 22 | | 2 | Lucy | 20 | | 3 | Kate | 23 | | 4 | Lily | 24 |

选择列

选择列的方法有以下几种:

  • 使用列名称
  • 使用 iloc 方法选择列
  • 使用 loc 方法选择列
# 通过名称选择列
sub_df4 = df[['name', 'country']]
print(sub_df4)

# 通过 iloc 方法选择列
sub_df5 = df.iloc[:, [0, 2]]
print(sub_df5)

# 通过 loc 方法选择列
sub_df6 = df.loc[:, ['name', 'country']]
print(sub_df6)

Markdown:

通过名称选择列

| | name | country | |---:|:-------|:----------| | 0 | Tom | USA | | 1 | Jerry | Canada | | 2 | Lucy | China | | 3 | Kate | UK | | 4 | Lily | Australia |

通过 iloc 方法选择列

| | name | country | |---:|:-------|:----------| | 0 | Tom | USA | | 1 | Jerry | Canada | | 2 | Lucy | China | | 3 | Kate | UK | | 4 | Lily | Australia |

通过 loc 方法选择列

| | name | country | |---:|:-------|:----------| | 0 | Tom | USA | | 1 | Jerry | Canada | | 2 | Lucy | China | | 3 | Kate | UK | | 4 | Lily | Australia |

选择行

选择行的方法有以下几种:

  • 使用 iloc 方法选择行
  • 使用 loc 方法选择行
  • 使用布尔值选择行
  • 使用 query 方法选择行
# 通过 iloc 方法选择行
sub_df7 = df.iloc[1:3, :]
print(sub_df7)

# 通过 loc 方法选择行
sub_df8 = df.loc[2:4, :]
print(sub_df8)

# 通过布尔值选择行
sub_df9 = df[df['age'] > 21]
print(sub_df9)

# 通过 query 方法选择行
sub_df10 = df.query('age > 21')
print(sub_df10)

Markdown:

使用 iloc 方法选择行

| | name | age | country | |---:|:-------|------:|:----------| | 1 | Jerry | 22 | Canada | | 2 | Lucy | 20 | China |

使用 loc 方法选择行

| | name | age | country | |---:|:-------|------:|:-------------| | 2 | Lucy | 20 | China | | 3 | Kate | 23 | UK | | 4 | Lily | 24 | Australia |

使用布尔值选择行

| | name | age | country | |---:|:-------|------:|:-------------| | 1 | Jerry | 22 | Canada | | 3 | Kate | 23 | UK | | 4 | Lily | 24 | Australia |

使用 query 方法选择行

| | name | age | country | |---:|:-------|------:|:-------------| | 3 | Kate | 23 | UK | | 4 | Lily | 24 | Australia |

过滤

我们可以使用以下方法之一来筛选数据集:

  • 使用 query 方法
  • 使用布尔条件
# 通过 query 方法过滤
sub_df11 = df.query('age > 22 & country == "UK"')
print(sub_df11)

# 通过布尔条件过滤
sub_df12 = df[(df['age'] > 22) & (df['country'] == 'UK')]
print(sub_df12)

Markdown:

使用 query 方法过滤

| | name | age | country | |---:|:-------|------:|:----------| | 3 | Kate | 23 | UK |

使用布尔条件过滤

| | name | age | country | |---:|:-------|------:|:----------| | 3 | Kate | 23 | UK |

修改数据框

以下是一些常见的修改数据框的方法:

  • 添加一列
  • 添加一行
  • 修改元素值
# 添加一列
df['gender'] = ['M', 'M', 'F', 'F', 'F']
print(df)

# 添加一行
new_row = {'name': 'Jerry', 'age': 21, 'country': 'USA', 'gender': 'M'}
df = df.append(new_row, ignore_index=True)
print(df)

# 修改元素值
df.loc[0, 'name'] = 'John'
print(df)

Markdown:

添加一列

| | name | age | country | gender | |---:|:-------|------:|:-------------|:---------| | 0 | John | 21 | USA | M | | 1 | Jerry | 22 | Canada | M | | 2 | Lucy | 20 | China | F | | 3 | Kate | 23 | UK | F | | 4 | Lily | 24 | Australia | F |

添加一行

| | name | age | country | gender | |---:|:-------|------:|:-------------|:---------| | 0 | John | 21 | USA | M | | 1 | Jerry | 22 | Canada | M | | 2 | Lucy | 20 | China | F | | 3 | Kate | 23 | UK | F | | 4 | Lily | 24 | Australia | F | | 5 | Jerry | 21 | USA | M |

修改元素值

| | name | age | country | gender | |---:|:-------|------:|:-------------|:---------| | 0 | John | 21 | USA | M | | 1 | Jerry | 22 | Canada | M | | 2 | Lucy | 20 | China | F | | 3 | Kate | 23 | UK | F | | 4 | Lily | 24 | Australia | F | | 5 | Jerry | 21 | USA | M |

总结

以上是一些 Pandas 子数据框的基本操作,包括创建子数据框、选择列和行、过滤和修改数据框。掌握这些技巧将使我们更有效地使用 Pandas 进行数据分析。