pandas - 是否有使用熊猫查找列中浮点值索引的函数?
问题描述
嗨,我有一个数据框df
,其中包含数字索引、日期时间列和臭氧浓度,以及其他几列。但这里列出了关于我的问题的重要专栏。
index, date, ozone
0, 4-29-2018, 55.4375
1, 4-29-2018, 52.6375
2, 5-2-2018, 50.4128
3, 5-2-2018, 50.3
4, 5-3-2018, 50.3
5, 5-4-2018, 51.8845
我需要根据列值调用行的索引值。但是,多行的列值为 50.3。首先,如何根据特定的列值找到索引值?我已经尝试过:
np.isclose(df['ozone'], 50.3).argmax()
从使用熊猫获取列中浮点数的索引,
但这只会给我数字出现的第一个索引值。有没有办法根据两个参数调用索引(比如询问当日期时间 = 5-2-2018 和臭氧 = 50.3 时的索引值是多少)?
我也试过 df.loc 但它不适用于浮点。
这是一些示例代码:
df = pd.read_csv('blah.csv')
df.set_index('date', inplace = True)
df.index = pd.to_datetime(df.index)
date = pd.to_datetime(df.index)
dv = df.groupby([date.month,date.day]).mean()
dv.drop(columns=['dir_5408'], inplace=True)
df['ozone'] = df.oz_3186.rolling('8H', min_periods=2).mean().shift(-4)
ozone = df.groupby([date.month,date.day])['ozone'].max()
df['T_mda8_3186'] = df.Temp_C_3186.rolling('8H', min_periods=2).mean().shift(-4)
T_mda8_3186 = df.groupby([date.month,date.day])['T_mda8_3186'].max()
df['T_mda8_5408'] = df.Temp_C_5408.rolling('8H', min_periods=2).mean().shift(-4)
T_mda8_5408 = df.groupby([date.month,date.day])['T_mda8_5408'].max()
df['ws_mda8_5408'] = df.ws_5408.rolling('8H', min_periods=2).mean().shift(-4)
ws_mda8_5408 = df.groupby([date.month,date.day])['ws_mda8_5408'].max()
dv_MDA8 = df.drop(columns=['Temp_C_3186', 'Temp_C_5408','dir_5408','ws_5408','u_5408','v_5408','rain(mm)_5724',
'rain(mm)_5408','rh_3186','rh_5408','pm10_5408','pm10_3186','pm25_5408','oz_3186'])
dv_MDA8.reset_index(inplace=True)
我需要日期作为代码开头的日期时间索引。
在此先感谢您的帮助。
解决方案
这就是你可能正在寻找的,
import pandas as pd
import datetime
data = pd.DataFrame({
'index':[0,1,2,3,4,5],
'date':['4-29-2018','4-29-2018','5-2-2018','5-2-2018','5-3-2018','5-4-2018'],
'ozone':[55.4375,52.6375,50.4128,50.3,50.3,51.8845]
}
)
data.set_index(['index'],inplace=True)
data['date'] = data['date'].apply(lambda x: datetime.datetime.strptime(x,'%m-
%d-%Y'))
data['ozone'] = data['ozone'].astype('float')
data.loc[(data['date'] == datetime.datetime.strptime('5-3-2018','%m-%d-%Y'))
& (data['ozone'] == 50.3)]
推荐阅读
- python - Pyaudio不被python识别,怎么办?
- ios - SwiftUI 中的按钮处理
- php - 调用未定义的方法 Laravel\Lumen\Routing\Router::fallback()
- javascript - chrome 扩展程序是在单独的线程上运行还是在浏览器的主线程上运行?
- python - 使用 requests.post 遍历多个 url
- javascript - 通过 npm 安装 fontawesome 后反应出错
- javascript - 使用电子构建器电子更新器跨电子应用程序更新的持久文件存储
- python - 如何从坐标列表中确定区域?
- python - 将 3 列从数据框转换为日期
- java - 使用 HTTP 请求获取最后一个 JSON 数组元素