【问题标题】:How to get the index values of two in level sec to subtract A & B using iloc如何使用 iloc 获取二级中两个的索引值以减去 A 和 B
【发布时间】:2018-08-03 06:47:00
【问题描述】:

如何获取第二级中两个的索引值以减去第一级中每个级别的A和B

bar  two     -0.673690  0.113648


 first  sec      A         B
bar     one     -0.424972  0.567020  
        two     -0.673690  0.113648 
baz     one      0.404705  0.577046 
        two     -0.370647 -1.157892 
foo     one      1.075770 -0.109050  
        two      0.357021 -0.674600 
qux     one     -1.294524  0.413738 
        two     -0.013960 -0.362543`

【问题讨论】:

  • 请提供创建此框架的数据,否则重新创建工作量太大。
  • 预期输出是什么?
  • @technical - 当然,但需要输出什么? bar, two 的位置?还是排?还是别的什么?

标签: python pandas numpy-ndarray


【解决方案1】:

我认为需要通过loc 和tuple 选择,返回一行DataFrame 添加[]:

df = df.loc[[('bar','two')]]
print (df)
                 A         B
first sec                   
bar   two -0.67369  0.113648

或者Series:

s = df.loc[('bar','two')]
#alternative
#s = df.xs(('bar','two'))
print (s)
A    -0.67369
B    0.113648
Name: (bar, two), dtype: object

但如果需要tuple 的位置,请使用Index.get_loc:

i = df.index.get_loc(('bar','two'))
print (i)
1

【讨论】:

    猜你喜欢
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多