Pandas .loc without KeyError

前端 未结 5 2219
南方客
南方客 2020-12-17 23:57
>>> pd.DataFrame([1], index=[\'1\']).loc[\'2\']  # KeyError
>>> pd.DataFrame([1], index=[\'1\']).loc[[\'2\']]  # KeyError
>>> pd.DataFrame         


        
5条回答
  •  甜味超标
    2020-12-18 00:01

    It seems to work fine for me. I'm running Python 3.5 with pandas version 0.20.3.

    import numpy as np
    import pandas as pd
    
    # Create dataframe
    data = {'distance': [0, 300, 600, 1000],
            'population': [4.8, 0.7, 6.4, 2.9]}
    df = pd.DataFrame(data, index=['Alabama','Alaska','Arizona','Arkansas'])
    
    keys = ['Alabama', 'Alaska', 'Arizona', 'Virginia']
    
    # Create a subset of the dataframe.
    df.loc[keys]
              distance  population
    Alabama        0.0         4.8
    Alaska       300.0         0.7
    Arizona      600.0         6.4
    Virginia       NaN         NaN
    

    Or if you want to exclude the NaN row:

    df.loc[keys].dropna()
              distance  population
    Alabama        0.0         4.8
    Alaska       300.0         0.7
    Arizona      600.0         6.4
    

提交回复
热议问题