python - 调用外部脚本
问题描述
我有一长串需要针对 pandas DataFrame 运行的 pandas 转换命令:
pd['newvar_A'] = pd['somevar'] * pd['somevar']
pd['newvar_C'] = pd['somevar'] * pd['somevar']
pd['newvar_D'] = pd['somevar'] * pd['somevar']
pd['newvar_ETC'] = pd['somevar'] * pd['somevar']
这是一个很长的列表(大约 150 行)。是否可以将其作为一个单独的脚本包含transformations.py
在已经存在的脚本中?这个想法是保持主脚本简单,所以我的想法是脚本看起来像这样:
import pandas as pd
pd.read_csv ('data.csv')
...
#Run transformations
insert file = "transformations.py"
...
#rest of the main script
是否有调用另一个 Python 脚本的 Python 命令(假设此脚本与工作目录位于同一文件夹中)?
谢谢!
解决方案
您可以尝试“导入”脚本,因为这是这篇文章的最佳方式
一个小例子
样本.csv
name,age
sharon,12
shalom,10
我要导入的脚本
nameChange.py
import pandas as pd
# transform the csv file
data = pd.read_csv('sample.csv')
data.iloc[0,0] = 'justin'
data.to_csv('sample.csv',index = False)
主要代码
stackoverflow.py
import pandas as pd
# before transform
data = pd.read_csv('sample.csv')
print(data)
# call the script
import nameChange
# do the work after the script runs
transformed_data = pd.read_csv('sample.csv')
print(transformed_data)
输出
name age
0 sharon 12
1 shalom 10
name age
0 justin 12
1 shalom 10
在不修改原始csv的情况下运行上述代码
我要导入的脚本
nameChange.py
import pandas as pd
import pickle
# transform the csv file variable which was saved by stackoverflow.py
data = pickle.load(open('data.sav','rb'))
data.iloc[0,0] = 'justin'
# saving the df
pickle.dump(data,open('data.sav','wb'))
主要代码
stackoverflow.py
import pandas as pd
import pickle
# before transform
data = pd.read_csv('sample.csv')
print(data)
pickle.dump(data,open('data.sav','wb'))
# call the script
import nameChange
transformed_data = pickle.load(open('data.sav','rb'))
# do the work after the script runs
print(transformed_data)
推荐阅读
- vue.js - 如何使用 laravel 连接和构建 vuejs 项目
- android - 如何在android中动态下载自定义字体?
- c# - 如何更改功能以显示基于上一项计算的值?
- flutter - 带有单选按钮逻辑的 Flutter Checkbox
- angular - 在 Angular 中关闭浏览器或选项卡时调用注销 api
- c++ - 为什么我在创建 task.json 后立即在 vscode 上收到错误?
- r - 列中特定行的最小值和最大值
- php - 使用 PHP 格式化 API Json 响应以在我的网站上很好地显示它
- servlets - 当我运行以下代码时,我收到一个 Servlet 404 错误
- android - Android存储库在库模块中不起作用