Edu*_*rdo 78 python dataframe pandas
说我有以下DataFrame
Letter Number A 1 B 2 C 3 D 4
哪个可以通过以下代码获得
import pandas as pd
letters=pd.Series(('A', 'B', 'C', 'D'))
numbers=pd.Series((1, 2, 3, 4))
keys=('Letters', 'Numbers')
df=pd.concat((letters, numbers), axis=1, keys=keys)
Run Code Online (Sandbox Code Playgroud)
现在我想从列Letters中获取值C.
命令行
df[df.Letters=='C'].Letters
Run Code Online (Sandbox Code Playgroud)
将返回
2 C Name: Letters, dtype: object
我的问题是:我怎么才能得到值C而不是整个两行输出?
非常感谢你.
爱德华多
val*_*n0t 114
df[df.Letters=='C'].Letters.item()
Run Code Online (Sandbox Code Playgroud)
这将返回从该选择返回的Index/Series中的第一个元素.在这种情况下,值始终是第一个元素.
编辑:
或者你可以运行loc()并以这种方式访问第一个元素.这个更短,是我过去实现它的方式.
EdC*_*ica 39
使用该values属性将值作为np数组返回,然后使用[0]获取第一个值:
In [4]:
df.loc[df.Letters=='C','Letters'].values[0]
Out[4]:
'C'
Run Code Online (Sandbox Code Playgroud)
编辑
我个人更喜欢使用下标运算符访问列:
df.loc[df['Letters'] == 'C', 'Letters'].values[0]
Run Code Online (Sandbox Code Playgroud)
这避免了列名称可以包含空格或破折号的问题-,这意味着使用..