Примените if else l oop к типу данных с плавающей запятой в кадре данных pandas - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу применить эту функцию к столбцу со значениями с плавающей запятой, и я не хочу изменять значения на тип данных int, так как это приведет к потере информации. Я получаю сообщение об ошибке '' объект с плавающей точкой 'не имеет атрибута' Radiation '' Каково решение этой проблемы, поскольку я хочу сохранить тип данных с плавающей точкой и выполнить if elese l oop

radiation column values

=======

функция для поиска Дня

def wplyer(row):
        if  row.Radiation == 0: 
            return 'Yes' ##### Night value
        else:
            return'No'
    tp= df2_all_rows['Radiation'].apply(wplyer)
    df2_all_rows['Day status'] = tp

1 Ответ

0 голосов
/ 17 апреля 2020

Вы применяете функцию построчно к столбцу, поэтому каждый вход представляет собой значение этого столбца, которое является плавающей точкой.

Однако ваша функция ожидает, что она применяется построчно к фрейм данных, такой, что строка является именованным кортежем, доступ к которому можно получить с помощью row.Radiation. Вот почему вы получаете сообщение об ошибке - вы пытаетесь получить доступ к свойству с именем «Излучение» на поплавке, и, конечно, поплавок не имеет такого свойства.

В любом случае вам не нужно использовать apply для достижения sh ваших целей.

df2_all_rows['Day status'] = 'No'
df2_all_rows.loc[df2_all_rows['Radiation'] == 0, 'Day status'] = 'Yes'
...