使用函数在 Pandas 中添加一列[重复]

Posted

技术标签:

【中文标题】使用函数在 Pandas 中添加一列[重复]【英文标题】:Adding a column in Pandas with a function [duplicate] 【发布时间】:2021-01-18 19:18:14 【问题描述】:

假设我有一个这样的数据框:

  columnA  columnB
0   10        90
1   83        17
2   30        21
...

我有这样的功能:

def my_func(a, b):
    value = #do some calculation
    return value

现在我想根据函数的计算为我的数据框获取一个新列 columnC。 显然,df["columnC"]= my_func(df["columnA"], df["columnB"]) 不起作用。

如何添加列?

【问题讨论】:

使用熊猫 apply : df['C'] = df.apply(my_func) 这也将熊猫系列传递给我的函数。我上面给出的例子也是同样的问题。 你能发布my_func 的作用吗? 这只是一些大的 if/return 块 【参考方案1】:

正确的做法是:

df['c'] = df.apply(lambda row: my_func(row['a'], row['b']), axis=1)

【讨论】:

【参考方案2】:

我找到了解决方法。不过这有点hacky...

df["columnC"]=pd.Series([my_func(row["columnA"], row["columnB"])for index, row in df.iterrows()], index=df.index)

【讨论】:

以上是关于使用函数在 Pandas 中添加一列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

pandas concat 2个数据框,并在合并数据中添加一列新数据。

使用 numpy.npv 函数的输出向数据框中添加一列

如何在特定小时的滚动平均值的熊猫数据框中添加一列

pandas使用duplicated函数删除dataframe中重复列名称的数据列默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)

在SQL数据库表中添加一列数值型(默认保留2位)的数字,该怎么写?

Flyway-在名称中包含指定后缀的所有表中添加一列