【发布时间】:2015-09-06 15:45:34
【问题描述】:
我有一些函数作用于一个列表并返回一个列表。我想在 Pandas Dataframe 上创建一个列,这样新列是由作用于数据帧的其他列的函数之一返回的列表。
类似python的伪代码:
def function(parameter, list):
...
return output_list
df['New Column'] = function(parameter, df['Old Column'])
我尝试了不同的选项,包括上面的代码,使用 .apply() 方法和其他方法......但没有成功。
有没有办法做到这一点?谢谢!
编辑: 有关解决方案,请参阅 Brian Pendleton 的答案。数据框中的列是 pandas 的 Series 对象。只需从所需列表中创建一个系列。
df['New_Column'] = pd.Series(data=function(parameter,list))
【问题讨论】:
-
数据框中包含的对象是列表吗?还是您将
Series对象视为列表? -
.apply()是将函数逐行应用于Series的方法。除此之外,您没有提供太多可使用的信息。 -
确实, .apply() 由于您所说的原因而不起作用。如果我使用像这样的函数“function(parameter, df['Old Column'])”,我会得到一个 python 列表。但是我无法将数据框列等同于此类列表的值。编辑:我可以做一个循环,但这似乎效率很低。