I have a dataframe with datetime index:
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
and I'm trying to add some new records but I get:
[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
I just want to add a 30 minutes interval record, my code is something like
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?
The correct way to insert a new record would be:
df.append(pd.DataFrame(index=[last_date]))
Example:
print(df)
Output:
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
To add an element, use .append():
df.append(pd.DataFrame(index=[last_date]))
Output:
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
As you can see, it adds a new record with the defined index and since we did not specify values for other columns, they are NaN
You can specify the values for one or more columns with a dict
like this:
data = {'hour':10}
df.append(pd.DataFrame(data, index=[last_date]))
Output:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With