【问题标题】:DataType of Pandas Multiindex [duplicate]Pandas Multiindex的数据类型[重复]
【发布时间】:2016-04-28 17:09:03
【问题描述】:
import pandas as pd
index = pd.MultiIndex.from_tuples([(1,2, None), (1,2,3)])
print(index.get_level_values(2))

给予

Int64Index([nan, 3.0], dtype='float64')

但是,我想得到

Int64Index([nan, 3], dtype='object')

也就是说,Pandas 不应该自动更改数据类型。我该怎么做?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我认为您可以通过astype 将级别值转换为string,通过.get 第一个值将其转换为str.split。然后新建MultiIndex

    #change multiindex
    new = zip(index.get_level_values(0),
              index.get_level_values(1),
              index.get_level_values(2).astype(str).str.split('.').str.get(0))
    
    
    new_index = pd.MultiIndex.from_tuples(new)
    print (new_index)
    MultiIndex(levels=[[1], [2], [u'3', u'nan']],
               labels=[[0, 0], [0, 0], [1, 0]])
    
    print(new_index.get_level_values(2))
    Index([u'nan', u'3'], dtype='object')
    

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 2018-07-22
      • 1970-01-01
      • 2017-09-19
      • 2020-11-12
      • 2022-06-14
      • 2020-11-30
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多