【发布时间】:2021-12-31 14:31:28
【问题描述】:
可能有人可以帮我找到解决方案:
我有 100 个数据框。每个数据帧包含时间 / High_Price / Low_price 我想创建新的 Dataframe,其中包含来自每个 DataFrame 的增益。
例子:
df1 = pd.DataFrame({"high":[5,4,5,2],
"low":[1,2,2,1]},
index=["2019-04-06","2019-04-07","2019-04-08","2019-04-09"])
df100 = pd.DataFrame({"high":[7,5,6,7],
"low":[1,2,3,4]},
index=["2019-04-06","2019-04-07","2019-04-08","2019-04-09"])
功能:
def myfunc(data, amount):
data= data.loc[(data!=0).any(1)]
profit = (amount/data.iloc[0]['low']) * data.iloc[-1]['high']
return profit
输出应该是:
output= pd.DataFrame({"Gain":[1,6]},
index=["df1","df100"])
如何将函数应用于 100 个 DataFrame,并通过创建 DataFrame 仅从它们中获取 Gains,我们可以在其中看到 DataFrame 的名称和该 DataFrame 的 Gain?
【问题讨论】:
-
调用函数时
amount从哪里来?所有 dfs 都一样吗? -
amount对于所有 DataFrame 总是相同的,可以只有 1。
标签: python pandas dataframe function lambda