使用 .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