这个问题可能是Python的基础知识,不幸的是,我花了一个小时寻找答案,但找不到。所以我希望有人的投入。我习惯于编写Class,在那里我可以给self
并将变量从另一个函数放入def function
中。如何在不编写Class function
的情况下捕获该变量?有办法吗?谢谢!
import pandas as pd
file_Name = 'test.xlsx'
def read_file():
df = pd.read_excel(file_Name)
return df
read_file()
def clean_data():
text_data = df['some_column_name'].str.replace(';',',') # How to get df from read_file() function?
return text_data
clean_data()
答案 0 :(得分:1)
调用第一个函数,并将返回的数据帧保存在变量df
中。然后调用第二个函数(clean_data
)并将此df
作为参数传递给它 。
使用此:
import pandas as pd
file_Name = 'test.xlsx'
import pandas as pd
def read_file():
df = pd.read_excel(file_Name)
return df
df = read_file()
def clean_data(df):
text_data = df['some_column_name'].str.replace(';', ',')
return text_data
clean_data()
答案 1 :(得分:1)
您想得太多了
df = read_file()
clean_data() # Uses the global variable df capturing the return value of read_file
或者,clean_data
应该接受参数,而不要使用全局变量。
def clean_data(f):
text_data = f['some_column_name'].str.replace(';', ',')
return text_data
f = read_file()
clean_data(f)
答案 2 :(得分:0)
通常,您可以使用全局变量。但是随着方法的设置,您应该只做
df = read_file()
在clean_data()方法内部。然后从那里使用df。注意,df只是调用read_file()的结果的本地名称,您可以调用任何名称。