Выбрать из объекта в пандах - PullRequest
2 голосов
/ 21 марта 2019

У меня есть датафрейм с объектом в column1. Этот объект содержит несколько значений в строке. Мне нужно перебрать все значения в объекте, однако я могу выбрать только всю строку. Как выбрать значения в строке объекта?

Dataframe:

d = {'column1': [{1,2,3},{4,5,6}]}
df = pd.DataFrame(d)

Код пока:

df.column1.iloc[0]

Это выбирает {1,2,3}, однако я бы хотел выбрать только первый элемент 1.

1 Ответ

4 голосов
/ 21 марта 2019

Здесь необходимо преобразовать значения в списки и затем индексировать:

d = {'column1': [{1,2,3},{4,5,6}]}
df = pd.DataFrame(d)
print (df.column1.apply(lambda x: list(x)[0]))
0    1
1    4
Name: column1, dtype: int64

Или использовать next с iter:

print (df.column1.apply(lambda x: next(iter(x))))

Преимущество работает также с пустыми set s - возможно установить значение по умолчанию:

d = {'column1': [{1,2,3},{4,5,6}, {}]}
df = pd.DataFrame(d)

print (df.column1.apply(lambda x: next(iter(x), 'no match')))
0           1
1           4
2    no match
Name: column1, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...