2016-06-02 1 views
1

Я импортирую набор данных с примерно 200 столбцами с уникальными именами столбцов в dataframe pandas с использованием read_csv.python собирает данные из dataframe в определенном месте строки

Data.columns 
Index([u'SAVERECORDER', u'SAVECHANNEL', u'STARTTIME', u'INT001', u'INT002', 
     u'INT003', u'INT004', u'INT005', u'INT006', u'INT007', 
     ... 
     u'INT092', u'INT093', u'INT094', u'INT095', u'INT096', u'INT097', 
     u'INT098', u'INT099', u'INT100', u'LSTIME'], 
     dtype='object', length=104) 

Я хочу извлечь 100-ю строку из каждого столбца INT001-INT099. Если бы было несколько столбцов, я бы сделал это вручную, но у меня нет подсказки о том, как извлечь определенный номер строки из всех и сохранить в массиве numpy. Все столбцы INT001-INT099 содержат значения температуры как двойные.

ответ

1

данные:

In [24]: df 
Out[24]: 
    a b c INT001 INT002 INT003 
0 8 1 1  4  2  6 
1 2 9 2  5  3  6 
2 4 2 9  3  5  2 
3 3 2 9  9  2  7 
4 4 4 3  7  8  9 
5 1 5 6  3  9  8 
6 2 2 9  6  1  7 
7 4 3 2  9  6  8 
8 6 7 2  1  1  3 
9 6 7 9  4  3  6 

в Numpy массива:

In [30]: df.ix[7, 'INT001':'INT003'].values 
Out[30]: array([9, 6, 8]) 

или

In [32]: df.ix[7, df.filter(like='INT0').columns].values 
Out[32]: array([9, 6, 8]) 

в кадре данных панды:

In [25]: df.ix[7:7, df.filter(like='INT0').columns] 
Out[25]: 
    INT001 INT002 INT003 
7  9  6  8 

или

In [26]: df.ix[df.index==7, df.filter(like='INT0').columns] 
Out[26]: 
    INT001 INT002 INT003 
7  9  6  8 

или

In [28]: df.ix[df.index==7, 'INT001':'INT003'] 
Out[28]: 
    INT001 INT002 INT003 
7  9  6  8 

Установка:

df = pd.DataFrame(np.random.randint(1,10,(10,6)), columns=list('abc')+['INT001','INT002','INT003']) 
1

Я хотел бы использовать генератор, чтобы создать список всех столбцов, которые вы хотите, как

from string import zfill 
    import numpy as np 

    cols = ['INT0' + zfill(str(i), 2) for i in np.arange(1, 100, 1)] 

Затем вы можете использовать панд .iloc индексировать целочисленным место чтения в here

После этого вы может вызвать .sum() в массиве.

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

  • Нет связанных вопросов^_^