#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)