gpt4 book ai didi

python - Pandas Dataframe 中的第二天或下一行索引

转载 作者:行者123 更新时间:2023-12-01 03:29:50 25 4
gpt4 key购买 nike

我正在尝试找到一种方法来获取 Pandas 数据框中的第二天(在本例中为下一行)。我以为这很容易找到,但我很挣扎。

起始数据:

    ts = pd.DataFrame(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.columns = ['Val']
ts['Week'] = ts.index.week
ts

Val Week
2000-01-01 -0.639345 52
2000-01-02 1.294537 52
2000-01-03 1.181486 1
2000-01-04 -0.011694 1
2000-01-05 -0.224887 1
2000-01-06 -0.493120 1
2000-01-07 1.439436 1
2000-01-08 1.017722 1
2000-01-09 1.125153 1
2000-01-10 0.209741 2

数据子集:

tsSig = ts[ts.Val>1.5].drop_duplicates(subset='Week')

tsSig.head()


Val Week
2000-01-24 2.215559 4
2000-02-09 1.561941 6
2000-02-24 1.645916 8
2000-03-16 1.745079 11
2000-04-10 1.570023 15

我现在想使用 tsSig 子集中的索引在 ts 中查找第二天,然后创建一个新列 ts['Val_Dayplus1'] 显示第 25 个(-0.309811)、第 10 个(-1.644814)等的值

我正在尝试像 ts.loc[tsSig.index].shift(1) 这样的事情来获得第二天,但这显然是不正确的......

所需输出:

                 Val  Val_Dayplus1  Week
2000-01-24 2.215559 -0.309811 4
2000-02-09 1.561941 -1.644814 6
2000-02-24 1.645916 -0.187440 8

(对于 tsSig.index 中的所有行)

编辑:

这似乎为我提供了在 tsSig.index 上移动日期索引所需的信息。我也想听听是否有其他方法可以做到这一点。

ts.loc[tsSig.index + pd.DateOffset(days=1)]
tsSig['Val_Dayplus1'] = ts['Val'].ix[tsSig.index + pd.DateOffset(days=1)].values

最佳答案

我设法解决了这个问题,所以分享答案:

    ts.loc[tsSig.index + pd.DateOffset(days=1)]
tsSig['Val_Dayplus1'] = ts['Val'].ix[tsSig.index + pd.DateOffset(days=1)].values

tsSig

Val Week Val_Dayplus1
2000-02-15 1.551125 7 -0.102154
2000-02-24 1.525402 8 -0.009776
2000-03-11 1.801845 10 0.832837
2000-03-22 1.546953 12 0.377510
2000-04-17 1.568720 16 -0.258558
2000-06-04 1.646147 22 0.853044

关于python - Pandas Dataframe 中的第二天或下一行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41048270/

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