Python: фрейм данных pandas и значение {Series}0 в отладчике
Я использую панды в Python 2.7 и читаю CSV-файл следующим образом:
import pandas as pd
df = pd.read_csv("test_file.csv")
DF имеет столбец с названием rating
и столбец под названием "обзор", я делаю некоторые манипуляции на df
например:
df3 = df[df['rating'] != 3]
Теперь, если я посмотрю в отладчике на df['review']
а также df3['review']
Я вижу эту информацию:
df['review'] = {Series}0
df3['review'] = {Series}1
Также, если я хочу увидеть первый элемент df['review']
Я использую:
df['review'][0]
что хорошо, но если я сделаю то же самое для df3
Я получаю эту ошибку:
df3['review'][0]
{KeyError}0L
Тем не менее, похоже, что я могу сделать это:
df3['review'][1]
Может кто-нибудь объяснить, пожалуйста, разницу?
1 ответ
Индексирование с целым числом в Серии не работает как список. Особенно, df['review'][0]
не получает первый элемент столбца "обзор", он получает элемент с индексом 0:
In [4]: s = pd.Series(['a', 'b', 'c', 'd'], index=[1, 0, 2, 3])
In [5]: s
Out[5]:
1 a
0 b
2 c
3 d
dtype: object
In [6]: s[0]
Out[6]: 'b'
Предположительно, в генерации df3
вы удалили строку с индексом 0. Если вы действительно хотите получить первый элемент независимо от индекса, используйте iloc
:
In [7]: s.iloc[0]
Out[7]: 'a'