set_index 未在 Pandas 中建立索引 [英] set_index not indexing in pandas

查看:55
本文介绍了set_index 未在 Pandas 中建立索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于下面的简单程序,我希望第二个输出与第一个相同..

为什么没有发生这种情况?

这只是data1data2

的顺序变化

columnList = ["PID", "Sec", "Util", "random"]数据 1 = [('67123', 12, '85', '100'),('67123', 112, '15', '100'),('87878', 23, "95", '100'),]df1 = pd.DataFrame(data1, columns=columnList)df1 = df1.set_index(["PID", "Sec"])打印df1使用随机PID安全67123 12 85 100112 15 10087878 23 95 100

data2 = [('67123', 12, '85', '100'),('87878', 23, "95", '100'),('67123', 112, '15', '100'),]df2 = pd.DataFrame(data2, columns=columnList)df2 = df2.set_index(["PID", "Sec"])打印df2使用随机PID安全67123 12 85 10087878 23 95 10067123 112 15 100

解决方案

Multiindex 的默认显示.您可以通过将参数 display.multi_sparse 设置为 Falsewith 来临时更改它.

<块引用>

选项:display.multi_sparse

默认:真<​​/p>

功能:稀疏化"MultiIndex显示(不显示组内外层重复元素)

可用选项Pandas.

#default 选项#将临时 multi_sparse 设置为 True与 pd.option_context('display.multi_sparse', True):打印df1使用随机PID安全67123 12 85 100112 15 10087878 23 95 100#和...一样打印df1使用随机PID安全67123 12 85 100112 15 10087878 23 95 100#将临时 multi_sparse 设置为 False与 pd.option_context('display.multi_sparse', False):打印df1使用随机PID安全67123 12 85 10067123 112 15 10087878 23 95 100

如果你想要 设置它,使用:

 pd.set_option('display.multi_sparse', False)

并重置:

pd.reset_option('multi_sparse')

For a simple program below, I was expecting the 2nd output to be same as first..

Why is this not happening?

It's just a order change in data1 and data2

columnList = ["PID", "Sec", "Util", "random"]

data1 = [('67123', 12, '85' , '100'),  
         ('67123', 112, '15', '100'),
         ('87878', 23, "95", '100'), 
        ]

df1 = pd.DataFrame(data1, columns=columnList)
df1 = df1.set_index(["PID", "Sec"])
print df1

         Util random

PID   Sec            

67123 12    85    100

      112   15    100

87878 23    95    100

data2 = [('67123', 12, '85' , '100'),  
         ('87878', 23, "95", '100'), 
         ('67123', 112, '15', '100'),
        ]

df2 = pd.DataFrame(data2, columns=columnList)
df2 = df2.set_index(["PID", "Sec"])
print df2
          Util random

PID   Sec            

67123 12    85    100

87878 23    95    100

67123 112   15    100

解决方案

It is default displaying of Multiindex. You can temporary change it by set parameter display.multi_sparse to False with with.

Option: display.multi_sparse

Default: True

Function: "Sparsify" MultiIndex display (don’t display repeated elements in outer levels within groups)

Available options of Pandas.

#default options
#set temporary multi_sparse to True
with pd.option_context('display.multi_sparse', True):
    print df1
    
          Util random
PID   Sec            
67123 12    85    100
      112   15    100
87878 23    95    100
    
#same as
print df1    
    
          Util random
PID   Sec            
67123 12    85    100
      112   15    100
87878 23    95    100

#set temporary multi_sparse to False    
with pd.option_context('display.multi_sparse', False):
    print df1    
          Util random
PID   Sec            
67123 12    85    100
67123 112   15    100
87878 23    95    100

If you want set it, use:

 pd.set_option('display.multi_sparse', False)

And reset:

pd.reset_option('multi_sparse')

这篇关于set_index 未在 Pandas 中建立索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆