【问题标题】:Python dataframe using .apply to replace for loop使用 .apply 替换 for 循环的 Python 数据框
【发布时间】:2019-03-07 11:00:31
【问题描述】:

对于python代码:

def filtering(price):
    global cash , stock,buyPrice,sellPrice, buy_data,sell_data,trade_price,test2
    if price.iloc[0] >price.iloc[1] and cash == True:
        buyPrice.append(price, ignore_index=True)
        cash = False
        stock = True

我正在尝试将一个数据帧附加到另一个数据帧中。 然后我将这个函数应用到:

toworkdata.apply(filtering)

问题是,buyPrice 没有给我任何回报。为什么会这样?

【问题讨论】:

    标签: python loops dataframe apply


    【解决方案1】:

    您已为数据框分配新值,如下所示

    def filtering(price):
        global cash , stock,buyPrice,sellPrice, buy_data,sell_data,trade_price,test2
        if price.iloc[0] >price.iloc[1] and cash == True:
            # Edit here
            buyPrice = buyPrice.append(price, ignore_index=True)
            cash = False
            stock = True
    

    【讨论】:

    • 我得到了 1 行 × 2459 列的答案,而我希望它是 2459 行 × 1 列。为什么呢?谢谢
    猜你喜欢
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    相关资源
    最近更新 更多