Ошибка поворота DataFrame - python - ValueError: длина переданных значений - X, индекс подразумевает Y - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь изменить кадр данных панд, который я ранее расплавил.Проблема в том, что в части var_name повторяются имена, которые я хотел бы иметь в качестве столбцов.

Вот как это выглядит в данный момент в качестве примера:

+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+
| Duration_survey | Q1_gender |    Q2_age     | ….. |          Valdidation          |                                                                           categories                                                                            | judgements |
+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Timing - First Click                                                                                                                                            |     12.085 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Timing - First Click                                                                                                                                            |     10.777 |
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Timing - Last Click                                                                                                                                             |     12.085 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Timing - Last Click                                                                                                                                             |     10.777 |
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Timing - Page Submit                                                                                                                                            |     12.899 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Timing - Page Submit                                                                                                                                            |     11.906 |
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Timing - Click Count                                                                                                                                            |          1 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Timing - Click Count                                                                                                                                            |          1 |
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Anyways, despite the urgency it’s fraught. Just check out media #twitter’s reaction to the ambiguity around who gets to spend this money. #cdnmedia #journalism |          8 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Anyways, despite the urgency it’s fraught. Just check out media #twitter’s reaction to the ambiguity around who gets to spend this money. #cdnmedia #journalism |          7 |
+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+------------+

* обратите внимание: это сокращенная версия - как показано в коде ниже, есть еще столбцы.

И это то, что я хотел бы иметь в конце на основе предыдущего примера:

+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+----------------------+------------+
| Duration_survey | Q1_gender |    Q2_age     | ….. |          Valdidation          |                                                                           categories                                                                            | Timing - First Click | Timing - Last Click | Timing - Page Submit | Timing - Click Count | judgements |
+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+----------------------+------------+
|             657 | Male      | Older than 40 |     | En la variedad hay placer.    | Anyways, despite the urgency it’s fraught. Just check out media #twitter’s reaction to the ambiguity around who gets to spend this money. #cdnmedia #journalism |               12.085 |              12.085 |               12.899 |                    1 |          8 |
|             480 | Male      | 31-40         |     | en la variedad esta el placer | Anyways, despite the urgency it’s fraught. Just check out media #twitter’s reaction to the ambiguity around who gets to spend this money. #cdnmedia #journalism |               10.777 |              10.777 |               11.906 |                    1 |          7 |
+-----------------+-----------+---------------+-----+-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+---------------------+----------------------+----------------------+------------+

* также количество твитов в столбце "категория" больше 1000.

Я думал, что мог бы использовать pivot, чтобы сначала получить все твиты в виде столбца, но время - первый щелчок, время - последний щелчок, время - отправка страницы, время - число щелчков - получилось бы в нужной форме, а затем я просто растаялих снова вниз, указав эти 4 связанных столбца Timing как id_vars, чтобы остаться в их форме.Но я даже не захожу так далеко - поворот не работает:

#first melt
    df_clean = pd.melt(df,
                       id_vars=['Duration_survey', 'Q1_gender', 'Q2_age', 'Q3_country', 'Q4_level_of_study',
                                'Q4_level_of_study_other',
                                'Q5_native_lang', 'Q6_second_lang', 'Q7_english_test', 'Q8_english_test_name',
                                'Q8_english_test_name_other', 'Q9_english_test_time', 'Q10_english_test_result',
                                'Q11_IELTS_test_result',
                                'Q12_twitter_usage', 'Valdidation'], var_name='categories', value_name='judgements')
#clear for empty judgements
    df_wo_na = df_clean.dropna(subset=['judgements'])

#pivot 
    df_p = df_wo_na.pivot(index=['Duration_survey', 'Q1_gender', 'Q2_age', 'Q3_country', 'Q4_level_of_study',
                                    'Q4_level_of_study_other',
                                    'Q5_native_lang', 'Q6_second_lang', 'Q7_english_test', 'Q8_english_test_name',
                                    'Q8_english_test_name_other', 'Q9_english_test_time', 'Q10_english_test_result',
                                    'Q11_IELTS_test_result',
                                    'Q12_twitter_usage', 'Valdidation'], columns='categories', values='judgements')

Так вот, где я терплю неудачу и получаю ошибку.ValueError: Длина переданных значений равна 5202, индекс подразумевает 16

У кого-нибудь есть идеи, как решить эту проблему?

Заранее спасибо

...