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

前端 未结 3 1338
闹比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).

    0 讨论(0)
  • 2021-02-20 04:31

    it should work simply..

    >>> df
      Host Port
    0    a    b
    >>> df[df['Host'] == 'a']['Port'][0]   # will choose the first index simply which is 'b'
    'b'
    

    OR, use with print which will strip off the surrounded single ticks.

    >>> print(df[df['Host'] == 'a']['Port'][0])
    b
    

    This will easier because you have just choose the desired Index even if you have Multiple values across Port columns

    Example:

    >>> df
      Host Port
    0    a    b
    1    c    c
    

    Looking for distinct a & c based on Index:

    >>> df[df['Host'] == 'a']['Port'][0]
    'b'
    >>> df[df['Host'] == 'c']['Port'][1]
    'c'
    
    0 讨论(0)
  • 2021-02-20 04:34

    As mentioned in my comment, using [1] should work afterwards, to pull the variable you're looking for.

    t = df[df['Host'] == 'a']['Port'][1]
    
    0 讨论(0)
提交回复
热议问题