Я получаю ошибку типа в R, когда pandas dataframe содержит пустой массив - PullRequest
0 голосов
/ 01 мая 2019

У меня есть функции для выполнения моего моделирования, написанные на Python, но я хотел бы использовать результирующие pandas dataFrames в R. Когда я пытаюсь это сделать, я получаю "TypeError: 'float' object cannot be interpreted as an integer"

Фактический код, который я хотел бы запустить, выглядит следующим образом:

def makeData(N, intercept, coef1, coef2, coef3, dev):
    x1 = np.random.uniform(low=1, high=3, size=N)
    x2 = np.random.uniform(low=100, high=110, size=N)
    x3 = np.random.uniform(low=8000, high=10000, size=N)
    dep = x1 * coef1 + x2 * coef2 + x3 * coef3 + np.random.normal(loc=intercept, scale=dev, size=N)

    ind = pd.DataFrame({'x1': x1, 'x2': x2, 'x3': x3})

    target = pd.DataFrame({'y': dep})

    joint_data = pd.concat([ind, target], axis=1)
    return joint_data

Что касается R, я использую reticulate для взаимодействия. Я вызываю скрипт Python с source_python(), а затем пытаюсь распечатать результат импортированных функций.

Я пробовал меньшие функции, чтобы точно определить проблему, вот результаты.

Эти два работают без проблем, и я вывожу данные в конец R.

def test():
    x1 = np.array([1, 2, 3])
    x2 = np.array([2, 4, 6])
    x3 = np.array((3, 6, 9))


    ind = pd.DataFrame({'x1': x1, 'x2': x2, 'x3': x3})
    return (ind)
def test():
    x1 = np.array([1.5, 2.5, 3.5])
    x2 = np.array([2, 4, 6])
    x3 = np.array((3, 6, 9))


    ind = pd.DataFrame({'x1': x1, 'x2': x2, 'x3': x3})
    return (ind)

Затем я попытался с помощью numpy создать несколько столбцов:

def test(N):
    x1 = np.random.randint(low=1, high=3, size = N)
    x2 = np.array([2, 4, 6])
    x3 = np.array((3, 6, 9))

    ind = pd.DataFrame({'x1': x1, 'x2': x2, 'x3': x3})
    return (ind)
def test(N):
    x1 = np.random.uniform(low=1, high=3, size=N)
    x2 = np.array([2, 4, 6])
    x3 = np.array((3, 6, 9))

    ind = pd.DataFrame({'x1': x1, 'x2': x2, 'x3': x3})
    return (ind)

Это не работает. В Python dataFrame генерируется правильно. Как только я пытаюсь получить его в R, я получаю ошибку, перечисленную выше, независимо от того, какую функцию я использую (и являются ли значения в кадре данных целыми числами или числами с плавающей запятой).

Я пытался погуглить ошибку, и она кажется распространенной, но я не могу перевести решения на то, что я пытаюсь сделать.

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