在数据框中选择最接近的值 pandas
pick nearest value in dataframe pandas
我有一个数据框,如果有 Nan,我需要选择最接近的值。(来自开放或 price_orderbook 列)以较接近者为准。
time open high low close timestamp price_orderbook
2022-02-22 19:05:10 2.128 2.129 2.128 2.129 NaN NaN
2022-02-22 19:05:11 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:12 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:13 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:14 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:15 2.129 2.129 2.129 2.129 NaN NaN
2022-02-22 19:05:16 2.128 2.128 2.128 2.128 NaN NaN
2022-02-22 19:05:17 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:18 2.128 2.128 2.128 2.128 1.645557e+09 2.1285
2022-02-22 19:05:19 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:20 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:21 NaN NaN NaN NaN 1.645557e+09 2.1285
2022-02-22 19:05:22 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:23 NaN NaN NaN NaN NaN NaN
示例:
df['closer']= "value" if there is open or price_orderbook else search for nearest open or price_orderbook
pandas 中有什么可以帮助我的吗?
您可以先用 price_orderbook
中存在的非缺失值替换 open
中的缺失值,然后用 Series.dropna
and for nearest values use Series.reindex
和 method='nearest'
删除所有其他缺失值:
df['closer'] = (df['open'].fillna(df['price_orderbook'])
.dropna()
.reindex(df.index, method='nearest'))
print (df)
open high low close timestamp \
2022-02-22 19:05:10 2.128 2.129 2.128 2.129 NaN
2022-02-22 19:05:11 NaN NaN NaN NaN NaN
2022-02-22 19:05:12 NaN NaN NaN NaN NaN
2022-02-22 19:05:13 NaN NaN NaN NaN NaN
2022-02-22 19:05:14 NaN NaN NaN NaN NaN
2022-02-22 19:05:15 2.129 2.129 2.129 2.129 NaN
2022-02-22 19:05:16 2.128 2.128 2.128 2.128 NaN
2022-02-22 19:05:17 NaN NaN NaN NaN NaN
2022-02-22 19:05:18 2.128 2.128 2.128 2.128 1.645557e+09
2022-02-22 19:05:19 NaN NaN NaN NaN NaN
2022-02-22 19:05:20 NaN NaN NaN NaN NaN
2022-02-22 19:05:21 NaN NaN NaN NaN 1.645557e+09
2022-02-22 19:05:22 NaN NaN NaN NaN NaN
2022-02-22 19:05:23 NaN NaN NaN NaN NaN
price_orderbook closer
2022-02-22 19:05:10 NaN 2.1280
2022-02-22 19:05:11 NaN 2.1280
2022-02-22 19:05:12 NaN 2.1280
2022-02-22 19:05:13 NaN 2.1290
2022-02-22 19:05:14 NaN 2.1290
2022-02-22 19:05:15 NaN 2.1290
2022-02-22 19:05:16 NaN 2.1280
2022-02-22 19:05:17 NaN 2.1280
2022-02-22 19:05:18 2.1285 2.1280
2022-02-22 19:05:19 NaN 2.1280
2022-02-22 19:05:20 NaN 2.1285
2022-02-22 19:05:21 2.1285 2.1285
2022-02-22 19:05:22 NaN 2.1285
2022-02-22 19:05:23 NaN 2.1285
我有一个数据框,如果有 Nan,我需要选择最接近的值。(来自开放或 price_orderbook 列)以较接近者为准。
time open high low close timestamp price_orderbook
2022-02-22 19:05:10 2.128 2.129 2.128 2.129 NaN NaN
2022-02-22 19:05:11 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:12 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:13 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:14 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:15 2.129 2.129 2.129 2.129 NaN NaN
2022-02-22 19:05:16 2.128 2.128 2.128 2.128 NaN NaN
2022-02-22 19:05:17 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:18 2.128 2.128 2.128 2.128 1.645557e+09 2.1285
2022-02-22 19:05:19 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:20 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:21 NaN NaN NaN NaN 1.645557e+09 2.1285
2022-02-22 19:05:22 NaN NaN NaN NaN NaN NaN
2022-02-22 19:05:23 NaN NaN NaN NaN NaN NaN
示例:
df['closer']= "value" if there is open or price_orderbook else search for nearest open or price_orderbook
pandas 中有什么可以帮助我的吗?
您可以先用 price_orderbook
中存在的非缺失值替换 open
中的缺失值,然后用 Series.dropna
and for nearest values use Series.reindex
和 method='nearest'
删除所有其他缺失值:
df['closer'] = (df['open'].fillna(df['price_orderbook'])
.dropna()
.reindex(df.index, method='nearest'))
print (df)
open high low close timestamp \
2022-02-22 19:05:10 2.128 2.129 2.128 2.129 NaN
2022-02-22 19:05:11 NaN NaN NaN NaN NaN
2022-02-22 19:05:12 NaN NaN NaN NaN NaN
2022-02-22 19:05:13 NaN NaN NaN NaN NaN
2022-02-22 19:05:14 NaN NaN NaN NaN NaN
2022-02-22 19:05:15 2.129 2.129 2.129 2.129 NaN
2022-02-22 19:05:16 2.128 2.128 2.128 2.128 NaN
2022-02-22 19:05:17 NaN NaN NaN NaN NaN
2022-02-22 19:05:18 2.128 2.128 2.128 2.128 1.645557e+09
2022-02-22 19:05:19 NaN NaN NaN NaN NaN
2022-02-22 19:05:20 NaN NaN NaN NaN NaN
2022-02-22 19:05:21 NaN NaN NaN NaN 1.645557e+09
2022-02-22 19:05:22 NaN NaN NaN NaN NaN
2022-02-22 19:05:23 NaN NaN NaN NaN NaN
price_orderbook closer
2022-02-22 19:05:10 NaN 2.1280
2022-02-22 19:05:11 NaN 2.1280
2022-02-22 19:05:12 NaN 2.1280
2022-02-22 19:05:13 NaN 2.1290
2022-02-22 19:05:14 NaN 2.1290
2022-02-22 19:05:15 NaN 2.1290
2022-02-22 19:05:16 NaN 2.1280
2022-02-22 19:05:17 NaN 2.1280
2022-02-22 19:05:18 2.1285 2.1280
2022-02-22 19:05:19 NaN 2.1280
2022-02-22 19:05:20 NaN 2.1285
2022-02-22 19:05:21 2.1285 2.1285
2022-02-22 19:05:22 NaN 2.1285
2022-02-22 19:05:23 NaN 2.1285