首页 > 解决方案 > 正确使用 np.where() 输出数据帧而不是元组

问题描述

我正在尝试返回日期(使用 set_index() 的索引列),其中一个位置的测量值是另一个位置的测量值的两倍。我需要显示第一个位置的日期和速度。

这是我到目前为止...

c = np.where(data['Loc1']== 2*data['Loc9'])
c

它返回一个三元组......我怎样才能让它显示日期和风速?

在这里慢慢学习Python。

标签: pythonpandasdataframe

解决方案


np.where会将索引返回到符合条件的行,因此您需要使用索引来选择 DataFrame 的行,例如使用.loc

import pandas as pd
import numpy as np

# Setup:
data = pd.DataFrame({"Loc1":[4,2,3], "Loc9": [2, 3, 4]})
c = np.where(data['Loc1']== 2*data['Loc9'])
data.loc[c]

推荐阅读