Pandas DataFrame, как получить элементы данных без dtype и \ nName - PullRequest
1 голос
/ 03 февраля 2020

Я загрузил pandas фрейм данных с

import pandas as pd 
data = pd.read_csv("names.csv", header=None)

Этот фрейм данных содержит имена и фамилии людей. Его размер (38,1). Во всяком случае, когда я пытался получить имя,

str(data.loc[1])

(мне нужна строка), я получаю:

'0    John Smith\nName: 1, dtype: object'

Почему? Я хотел бы иметь:

'John Smith'

Ответы [ 2 ]

4 голосов
/ 03 февраля 2020

Причиной получения результата является то, что 'data.loc [1]' является объектом pandas .core.series.Series. Когда вы преобразуете его в str, вся серия со всеми деталями преобразуется в строковый объект.

Это должно дать то, что вы ищете.

data.loc[1].values[0]

или

data.loc[1].tolist()[0]

или

data.loc[1,0]

Тип o / p является строковым - вам, возможно, не придется преобразовывать его в строковый тип далее.

1 голос
/ 03 февраля 2020

Поскольку ваш csv содержит один столбец, используйте аргумент squeeze pd.read_csv. Это вернет значение Series, которое теперь позволяет вам выбрать индивидуальное значение с помощью .loc, так как серии являются 1-D.


Пример данных: names.csv

foo
bar
bazz
boo
John Smith

Код

s = pd.read_csv('names.csv', header=None, squeeze=True)
s.loc[4]
#'John Smith'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...