gpt4 book ai didi

python - 在 MultiIndex 的第二层(即日期)上对 DataFrame 进行切片

转载 作者:行者123 更新时间:2023-12-01 05:24:08 25 4
gpt4 key购买 nike

我有一个具有类型为(int,datetime)的MultiIndex的DataFrame。我想将“actual_12b1”列中 0.0 的条目设置为 NaN,但前提是“begdt”(MultiIndex 的第二级)位于 1998 年或之前。经过一番尝试和错误后,我最终得到了以下代码:

year_start1999 = datetime(year=1999, month=1, day=1).date()
cond1 = data.index.get_level_values('begdt') < year_start1999
cond2 = data.actual_12b1 == 0.0
data.actual_12b1[cond1 * cond2] = np.nan

代码可以工作,但看起来过于复杂。由于我是 pandas 的新手(并且对所有切片/过滤感到困惑),我认为有人可能能够提出一种更干净的方法来实现相同的结果。

最佳答案

您对索引的想法是正确的,但使用数据帧的 replace 方法交换值会更容易。例如。

date_selector = df.index.get_level_values('begdt') < pd.datetime(1999, 1, 1)
df.actual_12b1[date_selector].replace(0.0, np.nan)

关于python - 在 MultiIndex 的第二层(即日期)上对 DataFrame 进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com