pandas中loc和iloc的用法

302 阅读2分钟

如何在 Pandas 中正确使用 loc 和 iloc 替代已弃用的 ix

在 pandas 中,ix 函数曾经是一个强大的工具,用于通过行和列的标签或整数位置来访问 DataFrame 中的数据。然而,从 pandas 0.20.0 版本开始,ix 被弃用,并在后续版本中被移除。取而代之的是更明确的 loc 和 iloc 方法。本文将介绍如何使用 loc 和 iloc 来替代 ix,并通过示例代码帮助你快速上手。


为什么 ix 被弃用?

ix 的功能虽然强大,但也容易引发混淆,因为它同时支持标签和整数位置索引。为了提高代码的可读性和可维护性,pandas 官方推荐使用以下两种更明确的方法:

  1. loc: 基于标签的索引,用于通过行和列的标签来访问数据。
  2. iloc: 基于整数位置的索引,用于通过行和列的位置(从 0 开始的整数)来访问数据。

示例:使用 loc 和 iloc

假设我们有一个简单的 DataFrame:

python

复制

import pandas as pd

data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data, index=['x', 'y', 'z'])
print(df)

输出结果:

复制

   A  B  C
x  1  4  7
y  2  5  8
z  3  6  9

使用 loc(基于标签)

loc 用于通过行和列的标签来访问数据。例如:

python

复制

# 获取行标签为 'x' 的数据
print(df.loc['x'])

# 获取行标签为 'y' 和列标签为 'B' 的数据
print(df.loc['y', 'B'])

使用 iloc(基于位置)

iloc 用于通过行和列的位置(从 0 开始的整数)来访问数据。例如:

python

复制

# 获取第一行的数据
print(df.iloc[0])

# 获取第二行、第一列的数据
print(df.iloc[1, 0])

总结

  • loc: 适用于基于标签的索引。
  • iloc: 适用于基于整数位置的索引。
  • ix: 已被弃用,不建议使用。

通过使用 loc 和 iloc,你可以更清晰、更安全地访问和操作 pandas DataFrame 中的数据。如果你还在使用 ix,现在是时候更新你的代码了!


希望这篇博客对你有所帮助!如果你有任何问题或需要进一步的示例,欢迎在评论区留言。