带有“ loc”和“ to_frame”的数据帧的不同格式

时间:2019-05-07 16:26:36

标签: python pandas dataframe apply

我在有时有一行的数据帧上运行Apply函数,并且有两个数据帧源。一种是.loc的结果,另一种是使用to_frame()系列转换为数据帧。

两者的数据相同。它在递归函数中,以f1作为初始输入,然后在函数内部查询df2并再次调用函数。

df1 = row.to_frame()
df2 = df3.loc[df3.loc['colname']== value]

然后,它们经历与以下相同的套用功能:

another_df = df1_or_df2.apply (lambda row:function (row))
上面的

在df1上可以正常工作,但对于df2则对df2 keyerror: ('id', 'occurred at index id')抛出错误。如果我添加axis=1,则可以。

我做了try, except使其工作,因为这是一次性的事情,但是现在需要提高速度。

您能告诉我为什么df的两种格式不同吗?或者我如何能更有效地做到这一点?

1 个答案:

答案 0 :(得分:0)

我认为to_frame()可以根据需要将系列转换为一行,但是我认为每列都会产生一行。所以我做了df1 = row.to_frame().transpose()。现在,这两个都可以使用。

为了提高效率,我在原始数据帧中有一个属性,可将数据划分为子集。因此,现在整个功能花费的时间更少。

谢谢。