在这里查看了几个答案之后,我想知道如何最好地处理以下问题: 作为输入,我有一个数据框,其中每一行包含有关产品的信息:其参考,费率等。
根据这些信息,我为每行构造一个新的数据框:每个新数据框(1个乘积(原始数据框中有1行)= 1个数据框)根据该行中的信息包含了新的行数:例如,如果“ TYPE”列的值为“ A”,则新数据框将有10行,每行对应于某个日期。就我而言,这些信息不仅适用于复杂的公式,而且适用于具有条件和不同情况(不仅是一系列操作)的函数。
我目前正在执行以下操作:
for index, row in original_df.iterrows():
product_ref = row[REF]
...
new_df = function(product_ref,...)
res.append(new_df)
return pandas.concat(res)
从我收集的有关Pandas文档的信息和一些答案来看,这是在Pandas中工作的最糟糕的方法之一。
我可以将iterrows
转换为itertuples
,这将提高性能,因为我不会构造Series而是将其命名为Tuples。
一种不同的解决方案也将是这样应用我的功能:
res = original_df.apply(function,axis=1)
这将返回一系列数据帧(如我的function
返回数据帧)。
在应用产生复杂结果(数据框对象)的函数和遍历命名元组以构造数据框并将其存储在列表中之间,首选的方法(如执行最佳方法)是什么? / strong>
我将同时实现这两个选项并尝试自己看看,但是如果有人对改进此伪代码有任何信息或建议,请与我们分享。