Как использовать индекс, чтобы вызвать метку панда данных - PullRequest
0 голосов
/ 15 мая 2018

возможно, это тривиальный вопрос, но я не могу найти ответ на эту проблему: у меня есть фрейм данных с этими столбцами:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df.columns
Index(['label', 'num.feature 1', 'num.feature 2', 'num.feature 3',
   'num.feature 4', 'num.feature 5',...,'num.feature 30'],
  dtype='object')

Я хотел бы найти способ доступа к столбцам с помощью переменной индексаi в названии столбца

for i in range(30):
    df['num.feature **i**'].hist(bins=90,range=(0,0.4))

Например, для печати различных гистограмм для каждого столбца.Есть ли лучшие способы сделать это?заранее спасибо

Ответы [ 3 ]

0 голосов
/ 15 мая 2018

Вот два способа:

Метод 1 Заранее извлеките интересующие вас функции и повторите их.IMO, это чище, так как если вы пропустите имя функции, оно все равно будет работать ( т.е. , если у вас нет, например, num.feature 6)

features = [i for i in df.columns if i.startswith('num.feature')]

for feature in features:
    plt.hist(df[feature], bins=90, range=(0,0.4))

Метод 2 Создайте имена соответствующих объектов на лету (у вас возникнут проблемы, если вы пропустите имя функции)

for i in range(1,31):
    plt.hist(df['num.feature '+str(i)])
0 голосов
/ 15 мая 2018

pandas.DataFrame.filter

df.filter(regex='^num.feature \d+$').hist()
0 голосов
/ 15 мая 2018

Вы в значительной степени там.просто нужно добавить формат.

for i in range(30):
    df['num.feature {}'.format(i)].hist(bins=90,range=(0,0.4))

Теперь должно быть хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...