ValueError: Несоответствие длины: ожидаемая ось имеет 23 элемента, новые значения имеют 2 элемента.Несоответствие длины панд - PullRequest
2 голосов
/ 23 сентября 2019

Я пытаюсь вычислить коэффициент корреляции Пирсона, используя мои данные, загруженные из CSV, когда я запускаю свой код - я получаю ошибку несоответствия, не знаю, как от нее избавиться.

Это Python 3. Я пытался сохранить значения в новой переменной

def correl(filename, header_one, header_two):

    df =pd.read_csv(filename)

    df.columns = [header_one, header_two]

    x= np.asarray(df[header_one])
    y= np.asarray(df[header_two])

    n_times_sum_of_x_times_y = len(x) * np.sum(np.multiply(x,y))

    sum_of_x = np.sum(x)
    sum_of_y = np.sum(y)


    n_times_sum_of_x_squared = len(x) * np.sum(np.multiply(x, x))
    n_times_sum_of_y_squared = len(x) * np.sum(np.multiply(y, y))

    sum_of_x_squared = sum_of_x ** 2
    sum_of_y_squared = sum_of_y ** 2

    numerator = n_times_sum_of_x_times_y - sum_of_x * sum_of_y
    denominator_squared = (n_times_sum_of_x_squared - sum_of_x_squared) * (n_times_sum_of_y_squared - sum_of_y_squared)
    denominator = np.sqrt(denominator_squared)

    p_correl_coefficient = (numerator / denominator)

    return(p_correl_coefficient)

#print(correl("imdb.csv", 'gross', 'budget'))

Фактическая ошибка, которую я получаю, когда запускаю свой код:

Файл"C: \ Users \ ruthi \ Anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py", строка 638, в _set_axis self._data.set_axis (ось, метки)

Файл "C:\ Users \ ruthi \ Anaconda3 \ lib \ site-packages \ pandas \ core \ internals \ Manager.py ", строка 155, в значениях set_axis есть {new} elements'.format (old = old_len, new = new_len)) ValueError: Несоответствие длины: ожидаемая ось имеет 23 элемента, новые значения имеют 2 элемента

1 Ответ

0 голосов
/ 23 сентября 2019

Это означает, что в файле у вас есть 23 столбца, но вы пытаетесь переименовать их всего с 2 столбцами.Если header_one и header_two являются именами существующих столбцов, выполните df = df[[header_one, header_two]], если нет, то сначала выберите два интересующих вас столбца, а затем переименуйте их с помощью df.columns = [header_one, header_two]

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