Удаление десятичного числа из числа с плавающей запятой и сравнение с другим значением - PullRequest
1 голос
/ 27 апреля 2019

У меня есть датафрейм, с которым я работаю в пандах. У меня есть два столбца, которые я хочу определить, если они не равны. Пример данных следующий:

           A          B         Compare
1002      3.1         31        Not Equal
1003       5          5         
1004       1          3         Not Equal

Я хочу, чтобы строки, подобные первой (1002), отображались как равные, поскольку они содержат одинаковые числа. Оба столбца A и B относятся к типу данных float64.

Я пробовал следующее:

df['column_a'].replace('.','')

И я также попытался найти способ умножить число на 10 при условии, что значение не является целым числом (3.1, 2.2, 1.4 и т. Д.).

Я полагаю, что я мог бы также достичь того же желаемого конечного результата, взяв все значения, которые больше 5 в столбце B, и разделив их на 10. Меня интересуют только значения от 0 до 5. Единственные значения, которые я собираюсь увидеть выше 5 можно разделить на 10.

Это то, что я пытался сделать, но я получаю ошибку (TypeError: недопустимое сравнение типов):

df['column_b'] = np.where(df['column_b'] > 5, /10,'')

Каков наилучший способ сделать значения равными в столбцах A и B для строки 1002?

1 Ответ

0 голосов
/ 27 апреля 2019

Это стоит попробовать:

df['Compare'] = df['A'].str.replace(".","").astype(int).eq(df['B'])

Вы шли в правильном направлении, просто добавьте astype и используйте .eq() ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...