我正在尝试做一些非常简单的事情:
last_id = len(bg_dt['time']) - 1
last_time = insight_date_to
if last_id > 0:
print("last_id is %d"%last_id)
print(bg_dt['time'])
print(type(bg_dt['time']))
print(type(last_id))
print(bg_dt['time'][0])
last_time = bg_dt['time'][last_id]
这会产生以下输出:
Name: time, dtype: datetime64[ns]
<class 'pandas.core.series.Series'>
<class 'int'>
KeyError:0
这里发生了什么?以下是我验证过的内容:
[]
与系列与详细信息一样,我使用的是Python 3并在Jupyter笔记本上运行。
以下是bg['time']
:
442751 2016-04-26 09:00:00
445544 2016-04-26 18:00:00
445539 2016-04-27 09:00:00
450923 2016-04-27 18:00:00
450922 2016-04-28 09:00:00
474301 2016-04-29 18:00:00
474298 2016-04-30 09:00:00
474300 2016-04-30 09:00:00
474299 2016-04-30 18:00:00
这里是insight_date_to
,一个日期时间对象2016-05-01 00:00:00
。
答案 0 :(得分:0)
我认为更好的是使用iloc
,如指向conner.xyz,用0
选择第一个值,用-1
选择最后一个值:
print bg_dt
time
442751 2016-04-26 09:00:00
445544 2016-04-26 18:00:00
445539 2016-04-27 09:00:00
450923 2016-04-27 18:00:00
450922 2016-04-28 09:00:00
474301 2016-04-29 18:00:00
474298 2016-04-30 09:00:00
474300 2016-04-30 09:00:00
474299 2016-04-30 18:00:00
print(bg_dt.iloc[0].time)
print(bg_dt.iloc[-1,:].time)
2016-04-26 09:00:00
2016-04-30 18:00:00
或者:
print(bg_dt.time.iloc[0])
print(bg_dt.time.iloc[-1])
2016-04-26 09:00:00
2016-04-30 18:00:00
要检查DataFrame
是empty
:
bg_dt = pd.DataFrame()
if not bg_dt.empty:
print(bg_dt.iloc[0].time)
print(bg_dt.iloc[-1,:].time)
print(bg_dt.time.iloc[0])
print(bg_dt.time.iloc[-1])