Как отобразить имя заголовка определенного столбца, используя пакет panda в Python - PullRequest
1 голос
/ 06 октября 2019

Я хочу отобразить только название заголовка столбца. Я попытался использовать .columns, но в этом списке перечислены все заголовки столбцов фрейма данных, и я просто хочу напечатать только заголовок двух столбцов, которые я передаю.

def test(x, y): # x and y are specific columns within a data frame that is being passed.

   print(x.columns, y.columns) # Runs an error of course, but I want to know how I would display just display their header names.             

Итак, я использовал panda для создания фрейма данных .csv, который может быть таким:

    num1   num2   num3
0    1      2      3
1    4      5      6
2    7      8      9

Итак, допустим, я пропустил столбцы 'num1' и 'num3'в качестве параметров для функционального теста, как х и у. Я хочу напечатать имена num1 и num3, так как это имена заголовков. Как бы я поступил об этом?

ОБНОВЛЕНИЕ: Хорошо, я получил имена для отображения с помощью print (). Тем не менее, я предполагаю, что настоящая ошибка возникает, когда я делаю plt.xlabel (x.name) и plt.ylabel (y.name). Это выдает ошибку: объект 'str' не имеет атрибута 'pop'. Я думал, что print () и plt.xlabel () или plt.ylabel () будут рассматриваться одинаково, мои извинения.

ОБНОВЛЕНИЕ 2: Решено! Спасибо, ребята!

Ответы [ 2 ]

1 голос
/ 06 октября 2019

С учетом следующего кадра данных:

df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=['num1', 'num2', 'num3'])

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

def test(x, y):
    print(x.name, y.name)

test(x=df['num1'], y=df['num3'])

дает:

# output: num1 num3

Примечание: xа у - серии панд, и чтобы получить название серии (которая соответствует названию столбца df), вы должны использовать атрибут .name

Если я правильно понимаю ваш второй вопрос, этот код предназначен дляВы:

cols = df.columns

for x, y in zip(cols, cols[1:]):
    test(df[x],df[y])

и т:

num1 num2
num2 num3
1 голос
/ 06 октября 2019
d = {'id': ['x1', 'x2'],'t1': [3,11]}
df = pd.DataFrame(data=d)


def test(x, y): # x and y are specific columns within a data frame that is being passed.
   print(x.name, y.name)
n1 = df['id']
n2 = df['t1']

test(n1,n2)

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