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

从pandas中的字典中读取数据并指定新的列值

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

    我有 dict pandas列中的数据,我试图从 字典 .

    import pandas as pd
    
    df = pd.DataFrame({'n': [np.nan, np.nan],
                       'd': [{'status': {'version': '1.0.0'},
                              'p': [{'identifier': {'Id': 5155,
                              'fips': '07',
                              'aId': 5175},
                              'lt': {'ltnum': '14',
                              'ls1': 0.1485537,
                              'ls2': 6471,
                              'ptype': 'NO'}}]}, 
                              np.nan]
                     })
    

    当我尝试时:

    df['n'].fillna(df['d'].str['p'][0][0]['lt']['ls1'], inplace=True)
    

    我得到一个:

    TypeError: 'float' object is not subscriptable
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Corralien    3 年前

    你必须使用 str 每次访问器:

    df['n'].fillna(df['d'].str['p'].str[0].str['lt'].str['ls1'], inplace=True)
    print(df)
    
    # Output
              n                                                  d
    0  0.148554  {'status': {'version': '1.0.0'}, 'p': [{'ident...
    1       NaN                                                NaN