Как использовать функцию apply в фрейме данных

#python #pandas

#python #pandas

Вопрос:

введите описание изображения здесь

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

 df = pd.read_csv('2020.csv')

def isbigger(x):
if x > 7:
    return True
return False
  

Это отлично работает, когда я передаю имя одного столбца, например

 df['Ladder score'].apply(isbigger)
  

Однако, когда я получаю корреляцию этих фреймов данных и пытаюсь применить, это работает не так

 df.drop(axis=1,columns = ['Country name','Regional indicator']).apply(isbigger).corr(method = 'spearman')
  

Я даже удалил столбцы string, но все еще не работает, как я могу применить весь фрейм данных?

Комментарии:

1. но все еще не работает , вероятно, вам следует включить полученную ошибку.

Ответ №1:

Вам не нужно apply , просто используйте обычные логические операторы здесь:

 df.drop(['Country name', 'Regional indicator'], axis=1).gt(7).corr()
  

Комментарии:

1. Что делает .gt(7)?

2. @Riptide gt означает greater than .

3. @niimet должно быть меньше или равно , или le для краткости 🙂

4. итак, что тогда противоположно значению больше, чем. И другой вопрос, как я могу применить весь фрейм данных, думайте так, как будто я хочу изменить значения.

5. @niimet то, что я там написал, уже применяется ко всему фрейму данных.

Ответ №2:

apply() Функция используется для вызова функции python для значений ряда.

Синтаксис:

 Series.apply(self, func, convert_dtype=True, args=(), **kwds)