#python
Вопрос:
Я пытаюсь использовать первую функцию в 2 других функциях. Я получаю сообщение об ошибке. Вот код, который я использую.Я совсем новичок в Python, буду признателен за любую помощь.
import pandas as pd
import numpy as np
inputFile = "File.xlsx"
def add():
cols = ["A", "B","C"]
df = pd.read_excel(inputFile, usecols=cols)
df.insert(4, "D", "0")
df.dropna(subset = ["B"], inplace=True)
df = df.replace(np.nan, '--', regex=True)
df.columns = df.columns.str.replace('_',' ')
return add
def out1(df):
df.to_excel("output1.xlsx", index=False)
writer = pd.ExcelWriter("output1.xlsx", engine="xlsxwriter")
workbook = writer.book
df.to_excel(writer, sheet_name="Sheet1", index=False)
ws = writer.sheets["Sheet1"]
ws.autofilter(0, 0, df.shape[0], df.shape[1])
writer.save()
def out2(df):
df.to_excel("output2.xlsx", index=False)
writer = pd.ExcelWriter("output2.xlsx", engine="xlsxwriter")
workbook = writer.book
df.to_excel(writer, sheet_name="Sheet1", index=False)
ws = writer.sheets["Sheet1"]
ws.autofilter(0, 0, df.shape[0], df.shape[1])
writer.save()
out1(add)
out2(add)
Комментарии:
1. Вы не вызываете
add
функцию, она должна бытьout1(add())
2. И
add()
должно заканчиватьсяreturn df
, а неreturn add
3. Пожалуйста, разместите обратную трассировку, чтобы легче определить неисправную линию и поток управления.
Ответ №1:
Ваша add()
функция должна return df
вместо return add
— вы возвращаете имя функции, а не переменную, которую вы создаете, и вам также нужно вызвать add()
функцию в конце — out1(add())
вместо out1(add)