2015-11-04 43 views
0

我有一个数据帧df,并定义一个函数,使用applymap应用于整个数据帧。pandas applymap内函数没有副本

def f(x): 
    return x*2 

def master(df): 
     return df.applymap(f) 

if __name__ == "__main__": 
    d = {'a':1, 'b':2} 
    df = pd.DataFrame(d.items()) 
    df_2 = master(df) 

是否有对dfmaster函数内部使用applymap,而无需进行复制的方法吗?

I'm思考的

def f(x): 
    return x*2 

def master(df): 
     df.applymap(f) 

if __name__ == "__main__": 
    d = {'a':1, 'b':2} 
    df = pd.DataFrame(d.items()) 
    master(df) 

的线条和主DF的东西会被改变。

EDITf功能更复杂的,这其中,当然,我想申请的函数的序列来转换数据帧。基本上有字符串解析器来规范化,转换为unicode,删除字符,拆分组件等,所以到目前为止,我看不到一种方法来做到这一点,没有applymap

+0

难道你不能'直接在'master'中直接返回df.applymap(f)'吗? – EdChum

+0

你是什么意思“没有制作副本”?你正在改变数据帧的值(这是'x * 2',它会复制一份) – joris

+0

我正在考虑能够在不需要在主服务器上返回的情况下更改df。 – Ivan

回答

0

你可以全球df。这样你就可以随时访问它,并且你可以在任何地方改变它。谁。这个功能很无用。 global df

+0

是的,全局变量不是真正的选择。 – Ivan

相关问题