- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
pd.date_range 不接受开始和结束日期的字符串变量。我将我的开始和结束日期作为来自另一个数据框的变量:
start_date = yoy_traffic_df['dt'].iloc[0]
end_date = yoy_traffic_df['dt'].iloc[-1]
print(yoy_traffic_df['dt'].iloc[[0, -1]].to_dict())
{0: '2018-09-14', 5567: '2018-03-28'}
start_date 和 end_date 都是字符串类型:
print(type(start_date),type(end_date))
<class 'str'> <class 'str'>
print(end_date,start_date)
2018-09-14 2018-03-28
dates = pd.Series(pd.date_range(start=start_date, end=end_date, freq='D'))
Series([], dtype: datetime64[ns])
如果我将变量设置为特定日期,它 pd.date_range 会给出想要的输出
start_date = '2018-03-28'
end_date = '2018-09-14'
d = pd.Series(pd.date_range(start=start_date, end=end_date, freq='D'))
d.head()
0 2018-03-28
1 2018-03-29
2 2018-03-30
3 2018-03-31
4 2018-04-01
dtype: datetime64[ns]
预期的输出是一个 series.head() 之类的
0 2018-03-28
1 2018-03-29
2 2018-03-30
3 2018-03-31
4 2018-04-01
最佳答案
看来 end_date
早于 start_date
。
start_date = yoy_traffic_df['dt'].iloc[0]
end_date = yoy_traffic_df['dt'].iloc[-1]
start_date < end_date
# False
所以 date_range
变成空的:
pd.date_range(start_date, end_date)
# DatetimeIndex([], dtype='datetime64[ns]', freq='D')
这类似于 python 的 range
的工作方式(list(range(5, 1))
打印出一个空列表)。最好的解决方法是调用 min
或 max
,
start_date, end_date = yoy_traffic_df['dt'].min(), yoy_traffic_df['dt'].max()
尽管如果您特别想要第一个和最后一个(不一定是最小值或最大值),请编写一些代码来交换它们。
if start_date > end_date:
start_date, end_date = end_date, start_date
关于python - 为什么 pd.date_range 返回一个空序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743476/
这个问题在这里已经有了答案: Pandas Date Range Monthly on Specific Day of Month (3 个回答) 2年前关闭。 我想获得一个日期范围,其中每个月的日期
当我输入“2015-08”等值时,我的 date_range 会按预期工作。如果我使用 startdate 变量,那么它就不再起作用了?我不明白为什么会这样。 我收到的错误是“无法将输入转换为时间戳”
我试图在 Python 中指定一个从当天前一天开始的日期范围。但是,我希望该日期范围从 10:00:00 开始。 这是我目前使用的代码 import pandas as pd import datet
我正在处理如何反向创建日期范围的问题。我正在尝试这个: import pandas as pd dates = pd.date_range(end='2/08/2014', periods=104,
我想在特定日期之间创建日期范围,每天有一定的采样,但每一天都应该从午夜开始: ['2017-01-01 00:00:00', '2017-01-01 05:00:00','2017-01-01 10:
运行这段代码时: a = pd.date_range("1959-12-09 00:00:00", "2013-12-09 12:00:00", freq = "365D6H") weekDays =
我想从这个带日期的列表中得到一个只有“天”的列表。我使用 pd.date_range 生成日期,然后将其转换为字符串。 date = '20170101' fecha = pd.date_range(
我可以使用指定月份结束的日期范围 import pandas as pd monthend_range = pd.date_range(datetime.date(2017,12,10), datet
如何才能在我的频率中添加仅两天?我想选择星期三和星期一。下面的代码仅在我的数据中生成星期三。 pd.date_range(11/21/2019, periods=5, freq='W-WED') 最佳
我正在尝试创建一个日期范围,该范围从特定日期开始以六个月为增量。因此,如果 end_date 是 2020/01/15,那么在此之前的日期将是 2019/07/15,然后是 2019/01/15,依此
我正在尝试使用 pd.date_range() 创建一个跨越多天且频率以秒为单位的 DatetimeIndex。但是,每天的时间范围应该限制在05:00:00和22:00:00之间 类似的东西(当然行
当使用 pandas (v. 13.1) date_range 函数时,我得到关于“end”是否在返回范围内的不一致行为: In [1]: pd.date_range(start='2014-06-0
我正在尝试使用 Python 生成一系列半年度日期。 Pandas 提供了一个函数 pd.date_range为了解决这个问题,我希望我的日期范围从结束日期开始并向后迭代。 例如给定输入: start
我正在尝试生成每月数据的日期范围,其中日期总是在月初: pd.date_range(start='1/1/1980', end='11/1/1991', freq='M') 这会生成 1/31/198
我有一个 Dataframe,其中一列有 DateTime 列。 我只对直到秒的日期时间值感兴趣。所以例如 df = pd.DataFrame({'a': np.random.rand(5),
寻找一种复杂的方式循环遍历日期范围并仅在每个星期日运行。 import pandas for da in pandas.date_range("20181101","20181217",freq='B
我的数据框如下所示: df[['reported_date', 'current_date']].head() reported_date current_date 0 20
我想要一个时间戳列表,范围从 00:00:00 到 23:45:00 使用 pandas date_range. 我试过这样 pd.date_range(start=pd.Timestamp('00:
pd.date_range 不接受开始和结束日期的字符串变量。我将我的开始和结束日期作为来自另一个数据框的变量: start_date = yoy_traffic_df['dt'].iloc[0] e
val.index[-1] = '2019-08-01' pd.date_range(start = val.index[-1], periods = 6,freq='M').tolist() [Ti
我是一名优秀的程序员,十分优秀!