python - 在函数中创建 pandas DataFrame
问题描述
如何构建创建这些数据框的函数?:
buy_orders_1h = pd.DataFrame(
{'Date_buy': buy_orders_date_1h,
'Name_buy': buy_orders_name_1h
})
sell_orders_1h = pd.DataFrame(
{'Date_sell': sell_orders_date_1h,
'Name_sell': sell_orders_name_1h
})
我有 10 个这样的数据框,我非常手动地创建,每次我想添加一个新列时,我都必须在所有这些数据框中都这样做,这很耗时。如果我可以构建一个函数,我只需要做一次。
上述两个函数之间的区别当然是一个用于买入信号,另一个用于卖出信号。
我猜函数的输入应该是:
- _buy/_sell - 列名
- buy_ / sell_ - 用于列输入
我在想函数的输入可能是这样的:
def create_dfs(col, col_input,hour):
df = pd.DataFrame(
{'Date' + col : col_input + "_orders_date_" + hour,
'Name' + col : col_input + "_orders_name_" + hour
}
return df
buy_orders_1h = create_dfs("_buy", "buy_", "1h")
sell_orders_1h = create_dfs("_sell", "sell_", "1h")
解决方案
数据框需要索引,因此您可以手动传递索引,或者以列表形式输入行值:
def create_dfs(col, col_input, hour):
df = pd.DataFrame(
{'Date' + col: [col_input + "_orders_date_" + hour],
'Name' + col: [col_input + "_orders_name_" + hour]})
return df
buy_orders_1h = create_dfs("_buy", "buy_", "1h")
sell_orders_1h = create_dfs("_sell", "sell_", "1h")
编辑:由于新信息而更新:要使用字符串调用全局变量,globals()
请按以下方式在字符串之前输入:
'Date' + col: globals()[col_input + "_orders_date_" + hour]
推荐阅读
- image - 在本机反应中显示本地图像
- mysql - 尝试导入数据库时出现 SQL 错误 1193
- django - Django 从 django.core.wsgi 导入 get_wsgi_application
- javascript - 如何使用动态列号重新初始化 DataTable?
- scala - 执行上下文未关闭
- react-native - Button 中的文本不显示 ios 中的文本(本机基础)
- ajax - 使用钩子在按钮 onClick 事件时反应 ajax 调用
- visual-studio-2019 - 我怎么能关掉这个?视觉工作室 2019
- php - 为什么我使用 PHP cURL 的 GET 请求返回一个空白页?
- javascript - JS Visibility API - 切换到另一个应用程序窗口