代码之家  ›  专栏  ›  技术社区  ›  Florent

如何从一系列数据中选择数据,并从另一个对象中获取数据类型?

  •  0
  • Florent  · 技术社区  · 3 年前

    我有一个熊猫数据帧,我从中选择第一行来获得一个系列。选择数据的最佳方法是什么 nb 2 ,不是另一个系列?

    我的问题是当我选择 route.nb 我得到的是一个对象而不是一个整数。

    # Dataframe to series
    route = routes.iloc[0]
    
    print(route)
    level_1  level_2  level_3 
    best                          -0.00228
    nb                                   2
    s1       cost     distance         0.0
                      city             NaN
                                    ...   
    s3       abcde    side             NaN
    
    print(route.nb)
    level_2  level_3
                        2
    Name: 16, dtype: object
    
    
    print(type(route.nb))
    <class 'pandas.core.series.Series'>
    
    print(len(route.nb))
    1
    

    值为2和 len(route.nb) == 1 但是当我尝试选择整数时 它返回一个对象。

    route.nb[0] even if it's not a list route.other_data 并获取整数(或字符串),而不是对象。

    系列的多重索引:

    MultiIndex([(  'best',      '',           ''),
                ('length',      '',           ''),
                (    's1',  'cost',   'distance'),
                (    's1',  'cost',       'city'),
                ...
                (    's3',  'type',   'transfer')],
               names=['level_1', 'level_2', 'level_3'])
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Cimbali    3 年前

    您可以将其作为系列中的第一个元素:

    route.iloc[0]
    

    或者可以使用该元素的完整索引:

    route[('nb', '', '')]
    

    当你这么做的时候 route['nb'] 它返回一个包含剩余2个索引级别的序列。如果您逐个访问这些级别:

    route['nb']['']['']