Создание pandas DataFrame через класс возвращает пустой DataFrame - PullRequest
2 голосов
/ 28 мая 2020

Цель этого сценария - создать фрейм данных, который создается с помощью кода, написанного в объектно-ориентированном стиле.

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

Ошибки нет.

Вот код:

import pandas as pd


class Dataframe:
    def __init__(self):
        self.df = pd.DataFrame()

    def name(self):
        self.df['name'] = ["Hamza", "Carmen"]
        return print(self.df['name'])

    def age(self):
        self.df['age'] = [20, 15]
        return self.df['age']

    def sex(self):
        self.df['sex'] = ["Male", "Female"]
        return self.df['sex']

    def address(self):
        self.df['adress'] = ["Miami", "Seattle"]
        return self.df['adress']

    def print(self):
        return print(self.df)


x = Dataframe()
x.print()

Ответы [ 4 ]

3 голосов
/ 28 мая 2020

Вам необходимо вызвать методы, которые вы создали для заполнения DataFrame.

import pandas as pd


class Dataframe:
    def __init__(self):
        self.df = pd.DataFrame()
        self.name()
        self.age()
        self.sex()
        self.address()

    def name(self):
        self.df['name'] = ["Hamza", "Carmen"]
        return print(self.df['name'])

    def age(self):
        self.df['age'] = [20, 15]
        return self.df['age']

    def sex(self):
        self.df['sex'] = ["Male", "Female"]
        return self.df['sex']

    def address(self):
        self.df['adress'] = ["Miami", "Seattle"]
        return self.df['adress']

    def print(self):
        print(self.df)


x = Dataframe()
x.print()
2 голосов
/ 28 мая 2020

Вы должны вызывать методы класса

x = Dataframe()
x.name()
x.age()
...
1 голос
/ 28 мая 2020

Вы не вызывали DataFrame (). Name / age или какие-либо другие функции, которые вы определили в классе. Вот почему он возвращает пустое значение self.df по умолчанию

0 голосов
/ 28 мая 2020

Одна маленькая вещь добавлена ​​к ответам выше:

функция print () return None. Таким образом, return print(xx) даст значение None, а не то, которое вы ожидали.

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