【发布时间】:2022-02-22 03:20:48
【问题描述】:
这是示例模拟数据的代码。实际数据可能有不同的开始和结束日期。
import pandas as pd
import numpy as np
dates = pd.date_range("20100121", periods=3653)
df = pd.DataFrame(np.random.randn(3653, 1), index=dates, columns=list("A"))
dfb=df.resample('B').apply(lambda x:x[-1])
从 dfb 中,我想选择包含该月所有日期的值的行。 在 dfb 中,2010 年 1 月和 2020 年 1 月的数据不完整。所以我想要从 2010 年 2 月到 2019 年 12 月的数据。
对于这个特定的数据集,我可以做
df_out=dfb['2010-02':'2019-12']
但请帮助我找到更好的解决方案
编辑——似乎这个问题有很多混乱。我想省略不以该月的第一天开始的行和不以该月的最后一天结束的行。希望这很清楚。
【问题讨论】:
-
您能否详细说明“包含一个月中所有日期的值”?你的意思是一个月中的每一天都有数据吗?
-
是的,一个月中的每一天都有数据。因此,如果数据从 2013-3-13 开始,则子集数据应该从下个月开始。假设数据在开始日期之后是连续的。
-
如果“不完整数据”是指 NAN,则可以删除具有 NAN 值的行。它不能解决你的问题吗?
-
没有 NaN。有人给我这个数据。它从某个月的中旬开始,到另一个月的中旬结束。我想从第 2 月初和第 11 月底开始对数据进行子集化。
标签: python pandas dataframe datetime