python – .loc()的轴参数,用于解释轴上传递的切片器= 1
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – .loc()的轴参数,用于解释轴上传递的切片器= 1,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1773字,纯文字阅读大概需要3分钟。
内容图文
![python – .loc()的轴参数,用于解释轴上传递的切片器= 1](/upload/InfoBanner/zyjiaocheng/780/5d4c38897a174b2cbc9909f359a1e076.jpg)
You can also specify the axis argument to .loc to interpret the passed
slicers on a single axis.
但是,我尝试沿列索引切片时出错.
import pandas as pd
import numpy as np
cols= [(yr,m) for yr in [2014,2015] for m in [7,8,9,10]]
df = pd.DataFrame(np.random.randint(1,100,(10,8)),index=tuple('ABCDEFGHIJ'))
df.columns =pd.MultiIndex.from_tuples(cols)
print df.head()
2014 2015
7 8 9 10 7 8 9 10
A 68 51 6 48 24 3 4 85
B 79 75 68 62 19 40 63 45
C 60 15 32 32 37 95 56 38
D 4 54 81 50 13 64 65 13
E 78 21 84 1 83 18 39 57
#This does not work as expected
print df.loc(axis=1)[(2014,9):(2015,8)]
AssertionError: Start slice bound is non-scalar
#but an arbitrary transpose and changing axis works!
df = df.T
print df.loc(axis=0)[(2014,9):(2015,8)]
A B C D E F G H I J
2014 9 6 68 32 81 84 60 83 39 94 93
10 48 62 32 50 1 84 18 14 92 33
2015 7 24 19 37 13 83 69 31 91 69 90
8 3 40 95 64 18 8 32 93 16 25
所以我总是可以分配切片并重新转置.
虽然感觉像一个黑客,轴= 1设置应该有效.
df = df.loc(axis=0)[(2014,9):(2015,8)]
df = df.T
print df
2014 2015
9 10 7 8
A 64 98 99 87
B 43 36 22 84
C 32 78 86 66
D 67 8 34 73
E 83 54 96 33
F 18 83 36 71
G 13 25 76 8
H 69 4 99 84
I 3 52 50 62
J 67 60 9 49
解决方法:
那可能是个错误.请在github上发布一个问题.选择事物的标准方法是完全指定所有轴.
In [6]: df.loc[:,(2014,9):(2015,8)]
Out[6]:
2014 2015
9 10 7 8
A 26 2 44 69
B 41 7 5 1
C 8 27 23 22
D 54 72 81 93
E 18 23 54 7
F 11 81 37 83
G 60 38 59 29
H 3 95 89 96
I 6 9 77 9
J 90 92 10 32
内容总结
以上是互联网集市为您收集整理的python – .loc()的轴参数,用于解释轴上传递的切片器= 1全部内容,希望文章能够帮你解决python – .loc()的轴参数,用于解释轴上传递的切片器= 1所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。