2015-02-27 2 views
2

Чтение других вопросов (1) Я нахожусь под впечатлением, что панды делают присуща рефлективными, вербальные или делают статистический анализ лучше всего, когда данные в следующем формате:Панды распутать кол-колонок

stimulus vote 
0   1  0 
1   1  1 
2   1  1 
3   1  1 
4   1  2 
5   1  2 
6   1  2 
7   1  2 
8   1  2 
9   1  2 
10   1  3 
11   1  3 
12   1  3 
13   1  3 

где stimulus мой независимый переменный и vote каждому присваивается оценка.

Однако мои данные уже сгруппированы по rating, с другой колонкой votes с указанием .count() каждого голосования.

stimulus rating votes 
0   1  0  1 
1   1  1  3 
2   1  2  6 
3   1  3  4 

снова stimulus мой IV, rating является оценка масштаба и votes этого числа голосов, отданных за каждый счет.

У меня возникли проблемы с работой с этим форматом, и я даже не могу понять, как я могу преобразовать эти данные в формат «сложены» или «записать».

В конце концов, я хочу

  • участка данные как boxplot
  • выполнить Крускала-Уоллиса H-тест

ответ

1
import numpy as np 
import pandas as pd 

df = pd.read_table('data', sep='\s+') 

stacked = pd.DataFrame({key: np.repeat(df[key].values, df['votes']) 
         for key in ('rating', 'stimulus')}) 

дает

rating stimulus 
0  0   1 
1  1   1 
2  1   1 
3  1   1 
4  2   1 
5  2   1 
6  2   1 
7  2   1 
8  2   1 
9  2   1 
10  3   1 
11  3   1 
12  3   1 
13  3   1 

Что вы опубликовали как vote столбец Я вызываю столбец rating. Если я правильно понимаю вашу ситуацию, значения в столбце stackedvote/rating s являются оценками. Поэтому я считаю целесообразным вызвать столбец rating. (Более того, это позволяет мне использовать понимание дикта, которое есть - хорошо, я признаю это - настоящая причина изменения имени. :)

Смежные вопросы