使用 .loc

.loc 使用标签来读写数据。

我们设置一个 DataFrame:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
                  }, index=['a', 'b', 'c', 'd', 'e'])

然后我们可以打印 DataFrame 来查看形状:

print df 

这将输出

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

我们使用列和行标签来访问 .loc 数据。让我们将行’c’,列’two’设置为值 33:

df.loc['c', 'two'] = 33 

这就是 DataFrame 现在的样子:

   one  two
a    1    6
b    2    7
c    3   33
d    4    9
e    5   10

值得注意的是,使用 df['two'].loc['c'] = 33 可能不会报告警告,甚至可能会起作用,但是,使用 df.loc['c', 'two'] 可以保证正常工作,而前者则不然。

例如,我们可以读取数据片段

print df.loc['a':'c'] 

将打印行 a 到 c。这是包容性的。

   one  two
a    1    6
b    2    7
c    3    8

最后,我们可以一起做两件事:

print df.loc['b':'d', 'two']

将输出 b 到列’‘‘的行 b。请注意,不打印列标签。

b    7
c    8
d    9

如果 .loc 提供的是不是标签的整数参数,则它将恢复为轴的整数索引(.iloc 的行为)。这使得混合标签和整数索引成为可能:

df.loc['b', 1]

将返回行’b’中第二列(索引从 0 开始)的值:

7