在DF的子集上运行:不同语法的影响

时间:2018-12-18 19:06:26

标签: python pandas apply

我想使用python和pandas对df中的数据子集进行操作。我正在使用Apply做这项工作。这是df0中保存的数据:

date         A         B        FX
1/1/2019   1.7379    1.7379   1.337562
2/1/2019   1.6604    1.7379   1.336279

我正在使用FX列更改A列中数据的单位,并保持B列不变。我使用的第一个代码是:

df0.loc[:,'A']=df0.loc[:,'A'].apply(lambda x: x / df0['FX'] * 1.055056)

这很好,可以生成我要查找的数据:

date         A         B        FX
1/1/2019   1.3708    1.7379   1.337562
2/1/2019   1.3109    1.7379   1.336279

第二段代码提供相同的答案。

df1.loc[:,'A']=df1.apply(lambda x: x / df1['FX'] * 1.055056)

显然我是新手-有人可以用简单的英语向我解释我两行代码的区别以及为什么他们产生自己的结果吗?

第二,如果有一种更有效的方法可以对DF的子集进行操作,那么我很想听听。

谢谢

编辑:

感谢以下评论。为了获得更多颜色,数据集中实际上有数百行和列,我通过列表选择一个子集。实际代码看起来更像(基于下面的评论-谢谢):

df0[list]=df0[list].apply(lambda x: x / df0['FX'] * 1.055056)

或者最好避免使用lamba(我相信这是正确的):

df0[list]=df0[list] / df0['FX'] * 1.055056

0 个答案:

没有答案