Pandas 仅 return 来自单元格的值
Pandas only return Value from Cell
我目前正在尝试从 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)
打印语句正在输出:
[array([], dtype=float64), array([7.0]), array([], dtype=float64), array([3.0])]
我想要的输出只是一个浮点值数组:
[7.0, 3.0]
我将如何清理输出以实现此目的?我的最终目标是获取数组的平均值。
使用 Series.isin
with boolean indexing
并转换为列表:
print (df.loc[df['Fruit'].isin(myList), 'Value'].values.tolist())
[7.0, 3.0]
My end goal is to get the average value of the array.
那么更好的方法是调用 mean
过滤 Series
:
val = df.loc[df['Fruit'].isin(myList), 'Value'].mean()
print (val)
5.0
我目前正在尝试从 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)
打印语句正在输出:
[array([], dtype=float64), array([7.0]), array([], dtype=float64), array([3.0])]
我想要的输出只是一个浮点值数组:
[7.0, 3.0]
我将如何清理输出以实现此目的?我的最终目标是获取数组的平均值。
使用 Series.isin
with boolean indexing
并转换为列表:
print (df.loc[df['Fruit'].isin(myList), 'Value'].values.tolist())
[7.0, 3.0]
My end goal is to get the average value of the array.
那么更好的方法是调用 mean
过滤 Series
:
val = df.loc[df['Fruit'].isin(myList), 'Value'].mean()
print (val)
5.0