python-3.x - 如何将数据从以前的函数带到当前函数?
问题描述
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有点新......
解决方案
变量通常只存在于函数内部。但是您可以将它们作为参数传递给函数,并在函数的末尾返回值。
所以如果你把
return df
在 的末尾extractor
,那是函数返回的值。你可以做类似的事情
dataframe = extractor()
现在函数的返回值在模块变量'dataframe'中。
同样,如果另一个函数有
def converter(df):
...
然后它需要一个参数,可以用作函数内部的变量“df”。它会被称为
converter(dataframe)
在这种情况下,将从第一个调用返回的数据帧作为参数传递给第二个。
这有帮助吗?同样的概念适用于绝大多数编程语言,而不仅仅是 Python。
推荐阅读
- python - 如何在 Django 模板中只显示一次具有相同数据的模型字段值?
- scalafx - ScalaFx MouseEvent:java.lang.NoSuchFieldError:返回
- android - 如何使用 SpannableStringBuilder 缩放多个跨度?
- php - PHP mail() 不会将邮件发送到 Outlook 分发列表
- javascript - 在 JavaScript 中将尾随数字添加到整数
- java - 我得到一个数组越界错误,但我不明白为什么,第 23 行的错误
- javascript - 向前一个 div 添加一个类
- python-3.x - 我在使用标签和变量 Tkinter python 3 时遇到问题
- peg - 如何在 PEG.js 中定义与模式多次匹配的规则?
- docker - Docker 桌面安装程序无法启动