How to get a single value as a string from pandas data frame

前端 未结 3 1336
闹比i
闹比i 2021-02-20 04:05

I am querying a single value from my data frame which seems to be \'dtype: object\'. I simply want to print the value as it is with out printing the index or other information a

3条回答
  •  抹茶落季
    2021-02-20 04:26

    If you can guarantee only one result is returned, use loc and call item:

    >>> df.loc[df['Host'] == 'a', 'Port'].item()
    'b'
    

    Or, similarly,

    >>> df.loc[df['Host'] == 'a', 'Port'].values[0]
    'b'
    

    ...to get the first value (similarly, .values[1] for the second). Which is better than df.loc[df['Host'] == 'a', 'Port'][0] because, if your DataFrame looks like this,

      Host Port
    1    a    b
    

    Then "KeyError: 0" will be thrown—

    df.loc[df['Host'] == 'a', 'Port'][0]
    ---------------------------------------------------------------------------
    KeyError                                  Traceback (most recent call last)
    

    Alternatively, use at:

    >>> df.at[df['Host'].eq('a').idxmax(), 'Port']
    'b'
    

    The drawback is that if 'a' doesn't exist, idxmax will return the first index (and return an incorrect result).

提交回复
热议问题