繁体   English   中英

将 function 应用于 dataframe 中的多个列并将结果存储在新列中

[英]Apply a function to multiple columns in dataframe and store result in a new column

我有一个输入 csv 文件,如下所示

在此处输入图像描述

这是我想要的 output

在此处输入图像描述

使用 function 计算结果

def result(a,b):
    return a+b 

如何将此 function 应用于 dataframe 以获得所需的结果

您可以迭代一列的数值,并通过简单的加法分配一个新列。

>>> for (i, v) in enumerate(df['a'].dropna()):
...     df[f'col{i}']=v + df['b']
...
>>> df
     a   b  col0  col1
0  5.0  10  15.0  16.0
1  6.0  20  25.0  26.0
2  NaN  30  35.0  36.0
>>>    
  • dropna - 避免没有值。
  • 当添加一个系列和一个标量时,如v + df['b']结果将是将该标量添加到系列的每个条目。

您好,为了执行加法或任何数学运算,在大多数情况下,两列的类型应该相同:假设您有与 int 相同类型的列。

import pandas as pd

data = {'col1':[5,6,0,0,0],'col2':[10,20,30,40,50]}
df = pd.DataFrame(data)
for ind, item in enumerate(df['col1']):
   if item != 0:
    df['col'+str(ind+3)] = df.apply(lambda row : result(item, row['col2']), axis=1)

Output

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM