# KeyError: 0 when accessing value in pandas series

## Question:

In my script I have df[‘Time’] as shown below.

```
497 2017-08-06 11:00:00
548 2017-08-08 15:00:00
580 2017-08-10 04:00:00
646 2017-08-12 23:00:00
Name: Time, dtype: datetime64[ns]
```

But when i do

```
t1=pd.Timestamp(df['Time'][0])
```

I get an error like this :

KeyError: 0

Do I need any type conversion here, if yes then how it can be fixed?

## Answers:

You’re looking for `df.iloc`

.

```
df['Time'].iloc[0]
```

`df['Time'][0]`

would’ve worked if your series had an index beginning from `0`

And if need scalar only use `Series.iat`

:

```
df['Time'].iat[0]
```

```
def get_time_slice(full_matrix, start = 0., period = 1.):
"""
Returns a slice of the given matrix, where start is the offset and period is
used to specify the length of the signal.
Parameters:
full_matrix (numpy.ndarray): matrix returned by matrix_from_csv()
start (float): start point (in seconds after the beginning of records)
period (float): duration of the slice to be extracted (in seconds)
Returns:
numpy.ndarray: 2D matrix with the desired slice of the matrix
float: actual length of the resulting time slice
Author:
Original: [lmanso]
I have also error clear to me anyone
Reimplemented: [fcampelo]
"""
# Changed for greater efficiency [fcampelo]
rstart = full_matrix[0: 0] + start
index_0 = np.max(np.where(full_matrix[: 0] <= rstart))
index_1 = np.max(np.where(full_matrix[: 0] <= rstart + period))
duration = full_matrix[index_1, 0] - full_matrix[index_0, 0]
return full_matrix[index_0:index_1, :],
```

#### Problem

In my case, since I had dropped the first row (which contained indexed headers):

```
df.iloc[1:]
```

Passing an index of `0`

would fail:

```
df.iloc[0]
>>> KeyError: 0
```

#### Solution

Add this to the end of the Dataframe you are indexing / slicing:

```
df.reset_index(drop=True)
```