Python 从数据帧返回单个单元格值
我想问一个问题,这是对这个主题的扩展: 此线程中的代码如下所示:Python 从数据帧返回单个单元格值,python,pandas,Python,Pandas,我想问一个问题,这是对这个主题的扩展: 此线程中的代码如下所示: import pandas as pd import numpy as np df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 'B': 'one one two three two two one three'.split(), 'C': np.arange(8), 'D': np.a
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
# A B C D
# 0 foo one 0 0
# 1 bar one 1 2
# 2 foo two 2 4
# 3 bar three 3 6
# 4 foo two 4 8
# 5 bar two 5 10
# 6 foo one 6 12
# 7 foo three 7 14
print(df.loc[df['D'] == 14])
这将产生以下结果:
A B C D
7 foo three 7 14
基于上面的代码,我如何返回一个“值”而不是一行。也就是说,如何返回与整行相反的值
'7'
或值'foo'
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split(),
'C': np.arange(8), 'D': np.arange(8) * 2})
print(df.loc[df['D'] == 14]['A'].index.values)
>>>[7]
print(df.loc[df['D'] == 14]['A'].values)
>>>['foo']
df.loc[df['D']==14][colName]或df.loc[df['D']==14]。值[index]非常棒。非常感谢你们两位。这些返回长度为1的nArray,而不是实际值。我的解决方案是min(df['A'][df['D']==14]),这种语法对我来说更符合逻辑,尽管使用min()似乎是一种错误。当然还有更好的方法?@smartse-我通常会使用索引(
[0]
)来获取第一个值,而不是使用min()
,如下所示:df[df['D']==14].loc[:,'a'].values[0]
。尽管如此,我只希望返回一个值。