DataFrame的2种访问

标签访问:在 Pandas 中,df['column_name'] 是一种非常常见的数据访问方式,用于从 DataFrame 中选择特定的列。这里的 df 代表一个 DataFrame 对象,而 column_name 是你想要访问的列的名称。以下是详细解释:

1. 基本访问

当你使用 df['column_name'] 时,你实际上是在请求 DataFrame 中名为 column_name 的列。这将返回一个 Series 对象,其中包含了该列的所有数据。

2. 返回类型

  • 返回的 Series 对象保留了原始 DataFrame 的索引。这意味着你可以继续使用这些索引来引用或操作数据。

3. 使用场景

  • 数据查看:快速查看某一列的数据。
  • 数据操作:对某一列进行操作,如计算统计数据、应用函数等。
  • 数据筛选:作为筛选数据的第一步,例如 df[df['column_name'] > 10] 可以选出 column_name 列中值大于 10 的所有行。

4. 示例代码

假设你有一个 DataFrame,如下所示:

import pandas as pd

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

# 通过标签访问 'Age' 列
age_series = df['Age']
print(age_series)

输出将是:

0    25
1    30
2    35
Name: Age, dtype: int64

5. 注意事项

  • 确保列名正确无误,否则会抛出 KeyError
  • 这种方法只适用于列名是字符串的情况。如果列名是数字或特殊字符,你可能需要使用 df.iloc[] 或 df.loc[]

6. 链式索引

你还可以通过链式索引来进一步筛选数据。例如,如果你想要获取名字为 'Alice' 的人的年龄,可以这样做:

alice_age = df[df['Name'] == 'Alice']['Age']
print(alice_age)

这将输出:

0    25
Name: Age, dtype: int64

通过标签访问是 Pandas 中非常强大且灵活的数据操作方式,使得数据选择和操作变得直观和高效。

位置访问:在 Pandas 中,iloc 是一种基于整数位置的索引方法,用于通过行号和列号来选择数据。这种方式不依赖于行标签或列标签,而是直接通过它们的位置来进行索引。以下是对您提供的两个 iloc 使用示例的解释:

1. df.iloc[0] - 访问第一行

  • iloc[0] 用于选择 DataFrame 的第一行数据。
  • 这里的 [0] 表示选择索引为 0 的行,即 DataFrame 的第一行。
  • 返回的结果是一个 Series 对象,包含了第一行的所有列的数据。
  • 这种方法不考虑行的实际标签是什么,只根据行的位置来选择。

示例代码:

import pandas as pd

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

# 通过位置访问第一行
first_row = df.iloc[0]
print(first_row)

输出将是:

Name     Alice
Age        25
City    New York
Name: 0, dtype: object

2. df.iloc[:, 0] - 访问第一列

  • iloc[:, 0] 用于选择 DataFrame 的第一列数据。
  • 这里的 : 表示选择所有行,0 表示选择索引为 0 的列,即 DataFrame 的第一列。
  • 返回的结果是一个 Series 对象,包含了所有行的第一列的数据。
  • 这种方法同样不考虑列的实际标签是什么,只根据列的位置来选择。

示例代码:

# 继续使用上面的 df

# 通过位置访问第一列
first_column = df.iloc[:, 0]
print(first_column)

输出将是:

0     Alice
1       Bob
2    Charlie
Name: Name, dtype: object

注意事项

  • iloc 索引是基于 0 的,即第一行或第一列的索引是 0。
  • 如果你尝试访问超出 DataFrame 大小的位置,Pandas 会抛出一个错误。
  • iloc 可以用于更复杂的索引操作,例如 df.iloc[0:2, 0:2] 可以访问前两行和前两列的数据。

iloc 是 Pandas 中非常强大的工具,它允许你以编程方式精确控制数据的选择,非常适合在不知道具体标签的情况下进行数据操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值