首页 > 解决方案 > 如何将数据从以前的函数带到当前函数?

问题描述

import ASExternalTools
import pandas as pd


def extractor():
    input_model = input('Enter model ID: ')
    r = ASExternalTools.get_reaction_compounds(input_model, False)
    data = r
    df = pd.DataFrame(data)
    df.columns = ['rxn_no', 'rxn_id', 'reactants', 'products', 'rxn_name']
    df = df.applymap(str)
    df['reactants'] = df['reactants'].str.replace("[", "", regex= False)
    df['reactants'] = df['reactants'].str.replace("]", "", regex= False)
    df['reactants'] = df['reactants'].str.replace("'", "")
    df['reactants'] = df['reactants'].str.replace(", ", "|")
    df['products'] = df['products'].str.replace("[", "", regex= False)
    df['products'] = df['products'].str.replace("]", "", regex= False)
    df['products'] = df['products'].str.replace("'", "")
    df['products'] = df['products'].str.replace(", ", "|")
    df[['rxn_no', 'reactants', 'products']].to_csv(input_model + ' Reactants_Products_list.csv', index= False)
    
extractor()

def converter():
    print ("[Specification]")
    print ("Type: 1")
    print ()
    print ("[Identifiers]")
    print ("Name: Converter for GSM-KM")
    print ("Author:")
    print ()
    print ("[Objects]")
    print ()
    print ("[Initials]")
    print ()
    print ("[Variables]")
    print ()
    print ("[Reactions]")

converter() 

如何将数据从“提取器”导入“转换器”。我想将反应物和产物导入最后几行反应下的部分。很多帮助将不胜感激,这里的python有点新......

标签: python-3.x

解决方案


变量通常只存在于函数内部。但是您可以将它们作为参数传递给函数,并在函数的末尾返回值。

所以如果你把

return df

在 的末尾extractor,那是函数返回的值。你可以做类似的事情

dataframe = extractor()

现在函数的返回值在模块变量'dataframe'中。

同样,如果另一个函数有

def converter(df):
    ...

然后它需要一个参数,可以用作函数内部的变量“df”。它会被称为

converter(dataframe)

在这种情况下,将从第一个调用返回的数据帧作为参数传递给第二个。

这有帮助吗?同样的概念适用于绝大多数编程语言,而不仅仅是 Python。


推荐阅读