Применение лямбды в DataFrame Python - PullRequest
0 голосов
/ 29 июня 2018

У меня есть Python DataFrame типа Python, как

>>> df
  classification like 
0         flower    1 
1         flower    0 
2         flower    0 
3      adventure    1 
4      adventure    1 

Я хочу создать выходной DataFrame, как

>>> df
  classification like  liked
0         flower    1  True
1         flower    0  False
2         flower    0  False
3      adventure    1  True
4      adventure    1  True

Я «применяю» лямбда-функцию Python к входному фрейму данных следующим образом:

>>> df['like'].apply(lambda x: x == 1)

Но я получаю все «Ложные» в колонке «Нравится»

>>> df
  classification like  liked
0         flower    1  False
1         flower    0  False
2         flower    0  False
3      adventure    1  False
4      adventure    1  False

Любые быстрые предложения будут полезны.

>>> df['like'].astype(int)
0    1
1    0
2    0
3    1
4    1
Name: like, dtype: int32

@ jezrael

>>> df['liked'] = df['like'].astype(bool)
>>> df
  classification like  liked
0         flower    1   True
1         flower    0   True
2         flower    0   True
3      adventure    1   True
4      adventure    1   True

@ jezrael: DTypes

>>> df.dtypes
classification    object
like              object
liked               bool
dtype: object

1 Ответ

0 голосов
/ 29 июня 2018

Преобразовать целочисленный столбец в логическое значение:

print (type(df.loc[0, 'like']))
<class 'numpy.int64'>

df['liked'] = df['like'].astype(bool)

Или назначьте сравнение с 1:

df['liked'] = df['like'] == 1

Если 1 - строка, сравнить по строке '1':

print (type(df.loc[0, 'like']))
<class 'str'>

df['liked'] = df['like'] == '1'
print (df)
  classification like  liked
0         flower    1   True
1         flower    0  False
2         flower    0  False
3      adventure    1   True
4      adventure    1   True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...