Отделение данных от фрейма данных pandas с использованием типов тегов - PullRequest
0 голосов
/ 30 сентября 2018

Я работаю с текстовым файлом, используя pandas в python.Файл содержит текстовые и числовые данные и имеет формат, показанный на рисунке ниже:

enter image description here

Фактический текстовый файл, соответствующий изображению вышеможно найти здесь .Я импортирую этот файл в pandas, используя

df = pd.read_csv('dum.txt',sep='\t', header=[0,1], index_col=0)

Я хочу получить отдельные матрицы для отдельных типов тегов (Tag1, Tag5, Tag6) из этого pandas кадра данных.В частности, я хотел бы получить столбцы 0, 1 и 2, которые сгруппированы под тегом Tag1 как один массив numpy (формы (8,3)), столбцы 3 и 4, которые принадлежат Tag5, как другой массив numpy (shape: (8,2)) и столбцы 5 и 6 (которые принадлежат Tag6) как еще один массив numpy (форма: (8,2)).Как я могу это сделать?Я буду очень признателен за любую помощь.

1 Ответ

0 голосов
/ 30 сентября 2018

Используйте df.values с нужными столбцами как:

df = pd.read_csv('dum.txt',sep='\t',header=[0,1],index_col=0)

df[['T1','T2','T3']].values

array([[1.1, 2.1, 3.1],
       [1.2, 2.2, 3.2],
       [1.3, 2.3, 3.3],
       [1.4, 2.4, 3.4],
       [1.5, 2.5, 3.5],
       [1.6, 2.6, 3.6],
       [1.7, 2.7, 3.7],
       [1.8, 2.8, 3.8]])

df[['T4','T5']].values

array([[4.1, 5.1],
       [4.2, 5.2],
       [4.3, 5.3],
       [4.4, 5.4],
       [4.5, 5.5],
       [4.6, 5.6],
       [4.7, 5.7],
       [4.8, 5.8]])

df[['T6','T7']].values

array([[6.1, 7.1],
       [6.2, 7.2],
       [6.3, 7.3],
       [6.4, 7.4],
       [6.5, 7.5],
       [6.6, 7.6],
       [6.7, 7.7],
       [6.8, 7.8]])

Или если у вас есть индексы [0,1,2], [3,4], тогда:

df[df.columns[[0,1,2]]].values
array([[1.1, 2.1, 3.1],
       [1.2, 2.2, 3.2],
       [1.3, 2.3, 3.3],
       [1.4, 2.4, 3.4],
       [1.5, 2.5, 3.5],
       [1.6, 2.6, 3.6],
       [1.7, 2.7, 3.7],
       [1.8, 2.8, 3.8]])

ИЛИ:

df.swaplevel(0,1,axis=1).Tag1.values
array([[1.1, 2.1, 3.1],
       [1.2, 2.2, 3.2],
       [1.3, 2.3, 3.3],
       [1.4, 2.4, 3.4],
       [1.5, 2.5, 3.5],
       [1.6, 2.6, 3.6],
       [1.7, 2.7, 3.7],
       [1.8, 2.8, 3.8]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...