将一系列转换应用于pandas DataFrame对象

时间:2016-05-26 19:15:04

标签: python pandas dataframe

我对Python编程比较陌生。我有一个pandas DataFrame对象说obj1。我需要对存储在obj1 [' key']中的记录应用一系列转换。假设obj1 [' key']有300个条目,我需要在300个条目中的每个条目上应用func1然后是func2然后func3,并将最终结果存储在obj1 [' key']中。 一种方法是如下所述。还有更好的方法吗?

obj1['key']=[func3(func2(func1(item))) for item in obj1['key']]

Python生成器不能用于此目的。

2 个答案:

答案 0 :(得分:2)

是的,您可以使用默认方法DataFrame.apply()

df = df.apply(f1).apply(f2).apply(fn)

答案 1 :(得分:0)

定义一个函数

def recursivator(x, fs):
    return recursivator(fs[-1](x), fs[:-1]) if len(fs) > 0 else x

x正在进行操作,fs是一系列功能。

df = df.applymap(lambda x: recursivator(x, fs))