Pandas只返回Cell中的Value

问题描述 投票:1回答:1

我目前正在尝试从Dataframe中的单元格中检索值。我正在搜索数据框以查找与行中的列匹配的字符串,然后从另一列返回该行中的值。

我的代码看起来像这样:

df:
Fruit   Value
apple     7.0
banana    6.0
orange    8.0
lemon     3.0
melon     2.0

myList = ['apple', 'lemon']

result = []

for word in myList:

    result.append(df['Value'].loc[df['Fruit'] == word].values)

print(result)

print语句正在输出:

[array([], dtype=float64), array([7.0]), array([], dtype=float64), array([3.0])]

我想要的输出只是一个浮点值数组:

[7.0, 3.0]

我将如何清理输出以实现此目的?我的最终目标是获得数组的平均值。

python pandas dataframe jupyter jupyter-lab
1个回答
1
投票

使用Series.isinboolean indexing并转换为列表:

print (df.loc[df['Fruit'].isin(myList), 'Value'].values.tolist())
[7.0, 3.0]

我的最终目标是获得数组的平均值。

然后更好的是调用过滤meanSeries

val = df.loc[df['Fruit'].isin(myList), 'Value'].mean()
print (val)
5.0
© www.soinside.com 2019 - 2024. All rights reserved.