首页 > 解决方案 > 使用 lamdba 函数根据其他列将列添加到 df > 列已生成,但值为 1:全部相同,2:内存编号

问题描述

我找到了一些答案,但他们没有给我正确的答案。

我有一个 df:lijst_df。看起来像这样(总共 355 行):

    gemeente        totaal 2016
0   AA EN HUNZE     64122320
1   AALSMEER        63209533
2   AALTEN          68151665
3   ACHTKARSPELEN   65699126

我想添加一个新列。新列中的值成为所有现有列中总和的百分比:total 2016。

我写了这个。不给出错误,创建我想要的新列,但给出的值可以在代码下方看到:

for index, value in lijst_df.gemeente.items():
    lijst_df['% van totaal'] = lambda x: (df['totaal 2016']) /  (int((lijst_df['totaal 2016'].sum()))) * 100

输出:

     gemeente        totaal 2016   % van totaal

0   AA EN HUNZE       64122320  <function <lambda> at 0x000001D5A5C029D0>
1   AALSMEER          63209533  <function <lambda> at 0x000001D5A5C029D0>
2   AALTEN            68151665  <function <lambda> at 0x000001D5A5C029D0>
3   ACHTKARSPELEN     65699126  <function <lambda> at 0x000001D5A5C029D0>

显然出了点问题……我想念什么?再次感谢!!

标签: pythonpandaslambda

解决方案


这更像是sum问题

# when you with pandas we should try not use for loop 
df['% van totaal'] = df['totaal 2016'] / df['totaal 2016'].sum()

推荐阅读