如何在熊猫中输出“名称”值?

时间:2020-05-11 13:09:18

标签: pandas

执行iloc(df.iloc [3])之后,将获得包含给定行的所有列名及其值的输出。

如果我只想输出同一行的“名称”值,代码应该是什么?

例如:

Columns 1           Value 1
Columns 2           Value 2
Name: Row 1, dtype: object

因此,在本例中为“第1行”。

2 个答案:

答案 0 :(得分:1)

>>> df = pd.DataFrame({'Name': ['Uncle', 'Sam', 'Martin', 'Jacob'], 'Salary': [1000, 2000, 3000, 1500]})
>>> df
     Name  Salary
0   Uncle    1000
1     Sam    2000
2  Martin    3000
3   Jacob    1500

df.iloc[3]提供以下内容:

>>> df.iloc[3]
Name      Jacob
Salary     1500
Name: 3, dtype: object

但是,df.iloc[3, 'Name']引发以下异常:

>>> df.iloc[3, 'Name']
Traceback (most recent call last):
  File "/home/nikhil/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 235, in _has_valid_tuple
    self._validate_key(k, i)
  File "/home/nikhil/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 2035, in _validate_key
    "a [{types}]".format(types=self._valid_types)
ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nikhil/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 1418, in __getitem__
    return self._getitem_tuple(key)
  File "/home/nikhil/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 2092, in _getitem_tuple
    self._has_valid_tuple(tup)
  File "/home/nikhil/anaconda3/lib/python3.7/site-packages/pandas/core/indexing.py", line 239, in _has_valid_tuple
    "[{types}] types".format(types=self._valid_types)
ValueError: Location based indexing can only have [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array] types

改为使用df.loc[3, 'Name']

>>> df.loc[3, 'Name']
'Jacob'

答案 1 :(得分:0)

df.iloc 是一个系列

df.iloc['3'].name 将返回名称

示例:

>> df=pd.DataFrame({'data': [100,200]})
>> df=df.set_index(pd.Index(['A','B']))
>> df.iloc[1]
data    200
Name: B, dtype: int64

>> df.iloc[1].name
'B'