从过滤的熊猫数据框中获取整数索引值

Posted

技术标签:

【中文标题】从过滤的熊猫数据框中获取整数索引值【英文标题】:Get integer index values from filtered pandas dataframe 【发布时间】:2021-12-28 16:07:46 【问题描述】:

拥有pd.DataFrameDateTimeIndex,我在应用过滤器后寻找索引整数值。

这是df

import numpy as np
import pandas as pd

df = pd.DataFrame(
    data=np.random.randint(low=0, high=10, size=(5, 2)),
    index=pd.date_range(start="2020-12-31", periods=5)
)
df

            0  1
2020-12-31  7  6
2021-01-01  2  6
2021-01-02  5  2
2021-01-03  2  3
2021-01-04  4  7

让我们应用一些过滤器:

df_selection = df.loc[pd.date_range(start="2021-01-02", periods=2), :]
df_selection

            0  1
2021-01-02  9  0
2021-01-03  9  5

最后,我正在寻找过滤数据帧的整数索引值。那就是我需要得到[2, 3]

【问题讨论】:

【参考方案1】:

假设df按索引排序:

np.searchsorted(df.index, df_selection.index)

输出:

array([2, 3])

一般来说,你可以这样做:

np.where(df.index.isin(df_selection.index))

输出:

(array([2, 3]),)

【讨论】:

以上是关于从过滤的熊猫数据框中获取整数索引值的主要内容,如果未能解决你的问题,请参考以下文章

过滤熊猫数据框列中的字符串/浮点数/整数值

熊猫数据框索引过滤

如何使用 for 循环过滤熊猫数据框中的观察结果?

Groupby 并根据熊猫数据框中的其他列比较/过滤特定组

在熊猫多索引数据框中返回满足逻辑索引条件的每个组的最后一行[重复]

从具有特定索引和过滤的 pandas df 中获取值