Code, der einen Fehler bei der Rückgabe außerhalb der Funktion zeigt – PythonPython

Python-Programme
Anonymous
 Code, der einen Fehler bei der Rückgabe außerhalb der Funktion zeigt – Python

Post by Anonymous »

import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col, to_date, when, lit
from snowflake.snowpark.window import Window

def main(session: snowpark.Session):
# Load the table data into Snowpark dataframe
tableName = 'VEEVA_LOT_FINAL_PATIENT_COHORT'
dataframe = session.table(tableName)

# Print a sample of the dataframe to standard output (first 10 rows)
dataframe.show()

# Process the data for line of therapy
dataframe = process_line_of_therapy(dataframe)

def process_line_of_therapy(dataframe):
# Convert 'transaction_date' and 'FIRST_MF_DX_DATE' to date format
dataframe = dataframe.with_column('transaction_date', to_date(col('transaction_date')))
dataframe = dataframe.with_column('FIRST_MF_DX_DATE', to_date(col('FIRST_MF_DX_DATE')))

# Initialize new columns
dataframe = dataframe.with_column('Line', lit(None))
dataframe = dataframe.with_column('Line_Start_Date', lit(None))

# Sort dataframe by 'patient_id' and 'transaction_date'
dataframe = dataframe.order_by('patient_id', 'transaction_date')

# Case 1: When mfdx = 1, and transaction_date >= FIRST_MF_DX_DATE
dataframe = dataframe.with_column(
'Line_Start_Date',
when(
(col('MF_PATIENT_FLAG') == 1) & (col('transaction_date') >= col('FIRST_MF_DX_DATE')) & (col('asc_flag') == 0),
col('transaction_date')
).otherwise(col('Line_Start_Date'))
)

dataframe = dataframe.with_column(
'Line',
when(
(col('MF_PATIENT_FLAG') == 1) & (col('transaction_date') >= col('FIRST_MF_DX_DATE')) & (col('asc_flag') == 0),
lit(1)
).otherwise(col('Line'))
)

# Case 2: When mfdx = 0
dataframe = dataframe.with_column(
'Line_Start_Date',
when(
(col('NON_MF_PV_ET_FLAG') == 1) & (col('asc_flag') == 0),
col('transaction_date')
).otherwise(col('Line_Start_Date'))
)

dataframe = dataframe.with_column(
'Line',
when(
(col('NON_MF_PV_ET_FLAG') == 1) & (col('asc_flag') == 0),
lit(1)
).otherwise(col('Line'))

)

return dataframe

# Return the updated dataframe


Bitte analysieren Sie den Code. Ich bin sehr neu in Python. Gibt es grundlegende Fehler? Ich erhalte eine Rückgabe außerhalb der Funktion, aber chatgpt ist nicht in der Lage, das zu lösen
Versucht, die gesamte Funktion zurückzugeben, versucht, oberhalb der letzten Deklaration zurückzukehren. Als ich es mit der korrekten Einrückung versuchte, wurde angezeigt: „Der Handler hat keinen Snowpark-DataFrame zurückgegeben. Geben Sie einen DataFrame vom Handler zurück oder ändern Sie den Rückgabetyp für das Python-Arbeitsblatt.“

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post