Как запустить пользовательскую регрессию в кадрах данных/больших кадрах bigquery (с использованием удаленных функций)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как запустить пользовательскую регрессию в кадрах данных/больших кадрах bigquery (с использованием удаленных функций)

Сообщение Anonymous »

Я не уверен, как запустить пользовательскую регрессию (с использованием пакета pyfixest) с несколькими столбцами, используя кадры данных bigquery, и добавить остаток регрессии в качестве нового столбца. Я не могу понять, как передать полный фрейм данных удаленным функциям. В предыдущем ответе предлагалось использовать bpd.Series, но это не работает. Кроме того, функция pyfixest требует в качестве входных данных кадр данных pandas.
Я использую следующую удаленную функцию. Эта функция преобразует bpd.Series в bpd.DataFrame, а затем в df pandas.

Код: Выделить всё

@bpd.remote_function(bpd.Series, int, reuse=False, packages=["pyfixest","pandas"])
def get_residuals(input_df):
import pyfixest as pf
import pandas as pd

input_df = input_df.to_frame().to_pandas()

m1 = pf.feols("spotify_streams ~ song_age_days | isrc", data=input_df)
return m1.resid()

#return input_df["spotify_streams"]
Затем я применяю эту функцию к исходному фрейму данных (который имеет столбцы «isrc», «spotify_streams», «song_age_days»)

Код: Выделить всё

df = bpd.read_gbq(sql, use_cache = False) #Get the data here, works fine.

df["residual"] = df[
["spotify_streams","song_age_days","isrc"]
].apply(get_residuals, axis=1)
Но тогда это терпит неудачу с

Код: Выделить всё

NameError: `song_age_days` is not present in the dataset or evaluation context.
Я также пробовал использовать только input_df = input_df.to_pandas(), но тогда это не удалось

Код: Выделить всё

 File \"\", line 9, in get_residuals\n  File \"/layers/google.python.pip/pip/lib/python3.10/site-packages/pandas/core/generic.py\", line 6204, in __getattr__\n    return object.__getattribute__(self, name)\nAttributeError: 'Series' object has no attribute 'to_pandas'\n"}
.
хотя в bpd.Series должна быть команда .to_pandas().

Подробнее здесь: https://stackoverflow.com/questions/789 ... emote-func
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Do BigQuery.loadJobConfig () и File Loads Method of Apache Beam записать в метод BigQuery - это то же самое
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Google BigQuery - потоковые данные в BigQuery
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Google BigQuery - потоковые данные в BigQuery
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как повысить производительность TCP -сервера для больших загрузки файлов от удаленных клиентов?
    Anonymous » » в форуме Javascript
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Эффективный частичный поиск строк в больших кадрах данных pyspark.
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»