Ron*_*sen 2 python dataframe pandas
我有一个简单的熊猫数据框:
import pandas as pd
data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])
Run Code Online (Sandbox Code Playgroud)
如果我从行索引 1 中选择名称,我会得到一个简单的字符串对象:
df.loc[1].Name
Out[9]: 'nick'
Run Code Online (Sandbox Code Playgroud)
但是,如果我选择包含 Age == 15 的行,我会得到一个似乎无法强制转换为字符串对象的对象
df.loc[df.Age==15].Name
Out[11]:1 nick
Name: Name, dtype: object
Run Code Online (Sandbox Code Playgroud)
type(df.loc[df.Age==15].Name)
Out[38]: pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)
好吧,这是一个系列,这很酷,获取第一个元素:
df.loc[df.Age==15].Name[0]
KeyError: 0
Run Code Online (Sandbox Code Playgroud)
好吧,这不起作用,让我们询问实际的密钥:
df.loc[df.Age==15].Name[1]
Out[40]: 'nick'
Run Code Online (Sandbox Code Playgroud)
是的!这样可行!...但是如果我知道实际的密钥,我一开始就不会进行查询!
如果我知道年龄,如何从此名称字段获取字符串值?在我的真实用例中,我知道年龄是独一无二的。
正如@ayhan 在上面的评论中所说,你可以pandas.Series.item()这样使用:
>>> df.loc[df.Age==15, 'Name'].values.item()
'nick'
Run Code Online (Sandbox Code Playgroud)
您还可以使用pandas.Series.array:
>>> df.loc[df.Age==15, 'Name'].array[0]
'nick'
Run Code Online (Sandbox Code Playgroud)
>>> df.loc[df.Age==15, 'Name'].to_numpy()[0]
'nick'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7191 次 |
| 最近记录: |