`Pandas DataFrame` 数据修改和访问基础以及实战

1. Pandas DataFrame 中的数据访问和修改

Pandas 中的 DataFrame 是一种二维表格数据结构,类似于电子表格或数据库表格。在 DataFrame 中,你可以存储不同类型的数据(如数字、字符串等)。以下是关于如何访问和修改 DataFrame 中数据的常见方法:

1. 创建一个 DataFrame

首先,我们可以通过多种方式创建一个 DataFrame

import pandas as pd

# 从字典创建 DataFrame
data = {
    'Name': ['Tom', 'Jerry', 'Mickey'],
    'Age': [20, 22, 23],
    'Score': [85, 90, 88]
}
df = pd.DataFrame(data)

2. 访问 DataFrame 中的数据

(1) 按列访问

每一列可以像访问字典的值一样通过列名访问:

# 访问单独的一列
df['Name']
(2) 按行访问

可以使用 .iloc[].loc[] 来按行访问数据。

  • .iloc[] 是基于位置(索引)访问数据。
  • .loc[] 是基于标签(行名)访问数据。
# 按位置访问第一行
df.iloc[0]

# 按标签(行名)访问第一行,假设有索引
df.loc[0]  # 如果没有自定义索引,默认索引为0、1、2...
(3) 按行列访问特定单元格

使用 .loc[].iloc[] 结合行和列标签来获取单元格的值:

# 访问特定的行列值
df.loc[0, 'Name']  # 按标签方式
df.iloc[0, 0]  # 按位置方式

3. 修改 DataFrame 中的数据

(1) 修改单元格的值

可以直接通过 .loc[].iloc[] 修改某个单元格的值:

# 修改第一行第一列的值
df.loc[0, 'Age'] = 21
(2) 修改整个列

如果你想修改整列数据,可以直接通过列名赋新值:

# 修改整个 "Score" 列
df['Score'] = [90, 92, 94]
(3) 修改整行

你也可以修改整行的数据:

# 修改第二行的所有数据
df.loc[1] = ['Jerry', 23, 95]

4. 添加/删除列

(1) 添加新列

你可以通过给 DataFrame 添加一个新的列来扩展它:

# 添加一个新列 "Grade"
df['Grade'] = ['A', 'B', 'A']
(2) 删除列

使用 drop() 方法删除列:

# 删除 "Grade" 列
df = df.drop('Grade', axis=1)

5. 过滤数据

你可以通过条件来过滤数据:

# 筛选出 Age 大于 21 的行
df_filtered = df[df['Age'] > 21]

总结

  • 按列访问df['Column Name']
  • 按行访问df.iloc[](按位置)、df.loc[](按标签)
  • 修改数据:通过 .loc[].iloc[] 修改单个值,或者通过列名直接修改整列
  • 添加列df['New Column'] = value
  • 删除列df.drop('Column Name', axis=1)

这些是 Pandas DataFrame 中访问和修改数据的常见方法。如果你有任何具体问题,或者想要了解更深的内容,随时可以问我!

2. Pandas DataFrame 数据修改和访问综合实战

好的!现在我们来做一个更实战的例子,结合 Pandas DataFrame 的数据访问和修改的各个操作。我们将创建一个 DataFrame,然后进行不同的操作,包括修改数据、添加新列、删除列等。

步骤 1: 创建一个示例 DataFrame

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'Name': ['Tom', 'Jerry', 'Mickey', 'Donald', 'Goofy'],
    'Age': [20, 22, 23, 21, 24],
    'Score': [85, 90, 88, 87, 92]
}

df = pd.DataFrame(data)

步骤 2: 访问数据

(1) 访问单列(比如“Name”列)
# 访问 Name 列
names = df['Name']
print(names)
(2) 访问单行(比如第2行)
# 访问第二行数据
second_row = df.iloc[1]
print(second_row)
(3) 访问特定单元格(比如第一行,第一列)
# 访问第一行第一列
name_first = df.loc[0, 'Name']
print(name_first)

步骤 3: 修改数据

(1) 修改单个单元格的数据(比如将第一行的 Age 修改为 21)
# 修改第一行的 Age
df.loc[0, 'Age'] = 21
print(df)
(2) 修改一列的数据(比如将 “Score” 列的所有值加10)
# 将 "Score" 列的分数加10
df['Score'] = df['Score'] + 10
print(df)
(3) 修改整行的数据(比如修改第二行)
# 修改第二行的所有数据
df.loc[1] = ['Jerry', 23, 95]
print(df)

步骤 4: 添加新列

(1) 添加一个新的列(比如“Grade”)
# 添加一个新列 Grade
df['Grade'] = ['A', 'B', 'A', 'B', 'A']
print(df)

步骤 5: 删除列

(1) 删除一个列(比如删除“Grade”列)
# 删除 Grade 列
df = df.drop('Grade', axis=1)
print(df)

步骤 6: 过滤数据

(1) 筛选出 Age 大于等于22 的数据
# 筛选出 Age 大于等于 22 的行
df_filtered = df[df['Age'] >= 22]
print(df_filtered)

步骤 7: 结合多种操作

(1) 修改、添加列、删除列并过滤数据的结合
# 修改“Score”列,使每个人的分数减去5
df['Score'] = df['Score'] - 5

# 添加一个新的列
df['Passed'] = df['Score'] >= 90

# 删除 "Age" 列
df = df.drop('Age', axis=1)

# 筛选出 Score >= 90 的数据
df_passed = df[df['Score'] >= 90]
print(df_passed)

总结

  • 访问列: df['Column Name']
  • 访问行: df.iloc[index]df.loc[index]
  • 修改单元格数据: df.loc[row, 'Column'] = new_value
  • 修改列: 通过直接赋值给列名来修改整列
  • 添加列: df['New Column'] = values
  • 删除列: df.drop('Column Name', axis=1)
  • 过滤数据: 使用条件 df[condition]

这就是一个完整的 Pandas DataFrame 数据修改和访问的实战示例。希望这些示例能帮助你更好地理解如何操作 DataFrame 数据!如果有任何问题,随时向我提问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Agent首席体验官

您的打赏是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值