使用函数在 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个数据框,并在合并数据中添加一列新数据。
pandas使用duplicated函数删除dataframe中重复列名称的数据列默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)