Использование DataFrame.lookup для получения строк, в которых имена столбцов являются подмножеством строки - PullRequest
0 голосов
/ 22 октября 2018

Предположим, что у вас есть простой фрейм данных, подобный следующему:

data = {'grades Feb':[10,20,30,40,50], 'grades
Jan':[5,10,15,20,25],'grades
April':[1,2,3,4,5],'months':['Feb','April','Jan','Feb','April']} 
df=pd.DataFrame(data) df.lookup(df.index,df.months)

Я хочу, чтобы вывод кода был примерно таким

array([10,  2, 15, 40,  5], dtype=int64)

без изменения имен столбцов на эквивалентныедля имен, которые находятся в столбце «месяцы» или меняются имена столбцов «месяцы», Я просто хочу извлечь значения строк, которые находятся в столбцах, где имена являются подмножеством значений моего столбца «месяцы». Как это можно сделать с помощью регулярного выражения или функции фрейма данных. PS: это простой пример для разъяснения моей проблемы, которая больше, чем та, где я не мог просто изменить имена столбцов.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Использование lookup и воссоздание ключей вашей колонки

df.lookup(df.index,'grades '+ df.months)
Out[1070]: array([10,  2, 15, 40,  5], dtype=int64)
0 голосов
/ 22 октября 2018

Сделайте это с df.lookup:

v = df.filter(like='grades').rename(columns=lambda x: x.split()[1])
print(v)
   Feb  Jan  April
0   10    5      1
1   20   10      2
2   30   15      3
3   40   20      4
4   50   25      5

grades = v.lookup(df.index, df.months)

print(grades)
array([10,  2, 15, 40,  5])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...