首页 > 解决方案 > 在函数中创建 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 个这样的数据框,我非常手动地创建,每次我想添加一个新列时,我都必须在所有这些数据框中都这样做,这很耗时。如果我可以构建一个函数,我只需要做一次。

上述两个函数之间的区别当然是一个用于买入信号,另一个用于卖出信号。

我猜函数的输入应该是:

我在想函数的输入可能是这样的:

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")

标签: pythonpandas

解决方案


数据框需要索引,因此您可以手动传递索引,或者以列表形式输入行值:

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]

推荐阅读