2014-12-09 3 views
0

Структура данных Я хочу, чтобы хранить на панд dataframe может быть представлена ​​следующим образом:Наиболее эффективный способ организации информации о панде dataframe

 F1 F2  F3 . . . . 

a 
b 
c 
t1 
t2 
. 
. 
t18000 
x1 
x2 
. 
. 
x18000 
y 
z 

Когда я хочу, чтобы визуализировать строки просто иметь какую информацию представления в числовой кадр входит, я не хочу видеть 18000 t или x переменных. Вместо этого я хочу, чтобы это было похоже: [a, b, c, t, x, y, z]

Я не очень хорошо знаком с модулем Pandas, поэтому мой вопрос заключается в том, как хранить информацию для доступа к именам строк как я указал выше в будущем? Дополнительная информация:

  • Следует хранить значения t и x в качестве массива в одной ячейке?

       F1    F2  ... 
    a 
    b 
    c 
    t [t1 t2 .. t18000] 
    x [x1 x2 .. x18000] 
    y 
    z              
    
  • Или есть неотъемлемый способ визуализировать несколько индексов одного и того же названия строк, как один в панд?

ответ

0

Есть несколько способов, которыми вы могли бы это сделать. Вы можете использовать Multiindex, который позволяет создавать иерархический индекс. Например:

df = pd.DataFrame({'F1': range(4)}, index=[['x', 'x', 'y', 'y'], ['x1', 'x2', 'y1', 'y2']]) 

даст вам DataFrame как:

 F1 
x x1 0 
    x2 1 
y y1 2 
    y2 3 

Вы можете просто groupby уровень, например, в сумме, df.groupby(level=0).sum()

В качестве альтернативы, если вы не хотите иметь индекс, вы можете просто использовать функцию в groupby. Например, для группировки по первому символу в индексе:

df = pd.DataFrame({'F1': range(4)}, index=['x1', 'x2', 'y1', 'y2']) 
df.groupby(lambda index: index[0]).sum()