python - 将具有日期时间索引的行插入数据框
问题描述
我有一个带有日期时间索引的数据框:
time count day hour minute label
2018-06-07 00:25:00 207 7.0 0.0 25.0 177.0
2018-06-07 00:55:00 187 7.0 0.0 55.0 150.0
2018-06-07 01:25:00 194 7.0 1.0 25.0 165.0
2018-06-07 01:55:00 176 7.0 1.0 55.0 175.0
2018-06-07 02:25:00 195 7.0 2.0 25.0 172.0
-> add new datetime record record here
我正在尝试添加一些新记录,但我得到:
[DatetimeIndex(['2018-06-07 01:55:00'], dtype='datetime64[ns]', name='time', freq=None)] not an index
# this happen even if row exists or not
我只想添加一个 30 分钟的间隔记录,我的代码类似于
last_date = recent_posts.iloc[[-1]].index
last_date = last_date + timedelta(minutes=30)
recent_posts.iloc[[last_date]] = # bla #bla
# What I may be doing wrong?
解决方案
插入新记录的正确方法是:
df.append(pd.DataFrame(index=[last_date]))
例子:
print(df)
输出:
count day hour minute label
time
2018-06-07 00:25:00 207 7.0 0.0 25.0 177.0
2018-06-07 00:55:00 187 7.0 0.0 55.0 150.0
要添加元素,请使用.append():
df.append(pd.DataFrame(index=[last_date]))
输出:
count day hour label minute
2018-06-07 00:25:00 207.0 7.0 0.0 177.0 25.0
2018-06-07 00:55:00 187.0 7.0 0.0 150.0 55.0
2018-06-07 01:25:00 NaN NaN NaN NaN NaN
如您所见,它使用定义的索引添加了一条新记录,并且由于我们没有为其他列指定值,因此它们是NaN
您可以使用如下所示指定一列或多列的值dict
:
data = {'hour':10}
df.append(pd.DataFrame(data, index=[last_date]))
输出:
count day hour label minute
2018-06-07 00:25:00 207.0 7.0 0.0 177.0 25.0
2018-06-07 00:55:00 187.0 7.0 0.0 150.0 55.0
2018-06-07 01:25:00 NaN NaN 10.0 NaN NaN
推荐阅读
- python - 如何使用项目内的标签对列表中的项目进行分组?
- java - 如何在浏览器中存储会话?
- java - 从另一个包调用函数
- javascript - html 下载属性重定向到 url 而不是下载
- .net-core - 尝试以编程方式创建团队通话
- javascript - useState 挂钩不起作用或未触发
- cmake - 如何通过 IMPORTED CMake 目标传递性地转发需求?
- java - 如何在 Maven 包中包含自定义文件夹?
- curl - cURL:HTTP/2 流 1 未完全关闭:PROTOCOL_ERROR (err 1)
- html - 如何使用引导程序仅在移动设备上添加 0 填充