gpt4 book ai didi

python - 在给定的日期重新采样 Python 系列或数据框

转载 作者:行者123 更新时间:2023-12-04 07:36:56 24 4
gpt4 key购买 nike

给定 Pandas 数据框或系列,我想在特定时间点对其重新采样。
这可能意味着通过向前填充以前的值来删除值或添加新值。
例子
鉴于系列 X被定义为

import pandas
rng_X = pandas.to_datetime(
['2021-01-01', '2021-01-02', '2021-01-07', '2021-01-08', '2021-02-01'])
X = pandas.Series([0, 2, 4, 6, 8], rng_X)

X
2021-01-01 0
2021-01-02 2
2021-01-07 4
2021-01-08 6
2021-02-01 8
重新采样 X在日期
rng_Y = pandas.to_datetime(
['2021-01-02', '2021-01-03', '2021-01-07', '2021-01-08', '2021-01-09', '2021-01-10'])
预期的输出是
2021-01-02    2
2021-01-03 2
2021-01-07 4
2021-01-08 6
2021-01-09 6
2021-01-10 6
  • 2021-01-01从输出中删除,因为它不在 rng_y 中.
  • 2021-01-03被添加到输出,其值从 2021-01-02 向前复制因为它不存在于 X
  • 2021-01-092021-01-10也将使用从 2021-01-08 复制的值添加到输出中
  • 2021-02-01从输出中删除,因为它不存在于 rng_Y
  • 最佳答案

    试试 reindex 方法设置为“填充”:

    X = X.reindex(rng_Y, method='ffill')
    X :
    2021-01-02    2
    2021-01-03 2
    2021-01-07 4
    2021-01-08 6
    2021-01-09 6
    2021-01-10 6
    dtype: int32

    完整代码:
    import pandas as pd

    rng_X = pd.to_datetime(['2021-01-01', '2021-01-02', '2021-01-07', '2021-01-08',
    '2021-02-01'])

    rng_Y = pd.to_datetime(['2021-01-02', '2021-01-03', '2021-01-07', '2021-01-08',
    '2021-01-09', '2021-01-10'])

    X = pd.Series([0, 2, 4, 6, 8], rng_X)

    X = X.reindex(rng_Y, method='ffill')
    print(X)

    X是 DataFrame ( df ) 而不是系列:
    df = pd.DataFrame([0, 2, 4, 6, 8], index=rng_X, columns=['X'])
    df = df.reindex(rng_Y, method='ffill')
    df :
                X
    2021-01-02 2
    2021-01-03 2
    2021-01-07 4
    2021-01-08 6
    2021-01-09 6
    2021-01-10 6

    关于python - 在给定的日期重新采样 Python 系列或数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67695589/

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