2016-07-25 2 views
1

Я хочу использовать groupby для начала анализа довольно большого набора данных, и моя потребность во многих вызовах требует использования метода диапазона и использования целых чисел для заголовков столбцов.Индекс столбца звонка с использованием массива numpy

Я пытаюсь получить большую часть этих данных для проверки, и я использую np.arange для полей.

Я использую следующий стиль dataframe:

df = pd.DataFrame({1 : ['foo', 'bar', 'foo', 'bar', 
           'foo', 'bar', 'foo', 'foo'], 
         2 : ['one', 'one', 'two', 'three', 
           'two', 'two', 'one', 'three'], 
         3 : np.random.randn(8), 
         4 : np.random.randn(8)}) 

Используя следующие работы:

names = np.arange(1,3) 
x=df.groupby([1,2]) 

Но я получаю следующее сообщение об ошибке, когда я использую:

names = np.arange(1,3) 
x=df.groupby(names) 

Группа и ось должны быть одинаковой длины

Непонятно, почему один работает, а другой нет, тем более, что при вызове просто df[names] дает то, что я ожидаю.

У меня есть массив размером 1474x480, что делает переименование столбцов ничего, кроме координат x-y, слишком сложным.

Это простое сканирование x-y-z, которое дает 3 значения: Индекс строки = x, Индекс столбца = y и Значение = z. Данные все числовые, np.float64.

Приносим извинения, если это избыточно, но я не могу найти подобный случай здесь.

ответ

2

Попробуйте это:

names = np.arange(1,3) 
x=df.groupby(names.tolist()) 


print type([1, 2]) 
print type(np.arange(1,3)) 
print type(np.arange(1,3).tolist()) 

<type 'list'> 
<type 'numpy.ndarray'> 
<type 'list'> 
+0

Brilliant. И я ухожу ... – double0darbo

+1

Можете ли вы продвигать, также. – Merlin

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