另一个def函数的Python函数

时间:2018-07-23 18:08:52

标签: python python-3.x

这个问题可能是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()

3 个答案:

答案 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()的结果的本地名称,您可以调用任何名称。