Как извлечь ячейку из фрейма данных панды



Скажем, я создаю pandas фрейм данных (я не очень хорош в pandas, и это может быть не очень эффективно):

import pandas as pd
colnames = ['a', 'b']
data = pd.DataFrame(columns=colnames)
df_row = ['val1', 'val2']
app = pd.Series(df_row, index=cols)
data = data.append(app, ignore_index=True)
Я хочу получить доступ к val1 как к строке, а не как к объекту pandas.

Если я это сделаю:

cell = data.iloc[[0],[0]]
type(cell)

Я вижу, что cell имеет тип <class 'pandas.core.frame.DataFrame'>

Если я тогда сделаю:

type(cell[`a'])

Я вижу, что это <class 'pandas.core.series.Series'>

Как я могу получить val1 как объект str и не объект pandas?

120   3  

3 ответов:

Проблема в вашем случае заключается в том, что вы передаете списки в iloc, вам нужно передать нормальные целые числа 0,0 в iloc, чтобы получить желаемый результат -

In [85]: data.iloc[0,0]
Out[85]: 'val1'

Чтобы получить доступ к значению внутри фрейма данных в виде строки:

cell = str(data.iloc[0,0])

Для целочисленного индексирования конкретной ячейки в кадре данных (или серии), iat обычно наиболее эффективно:

>>> data.iat[0, 0]
'val1'
    Ничего не найдено.

Добавить ответ:
Отменить.