关于在Function中修改DataFrame的困惑

时间:2017-06-21 14:35:04

标签: python function pandas

在函数中工作时,我很难理解为什么有时候我可以修改数据帧值,有时候我不能修改数据帧值。例如,变量赋值没有return语句,但pd.get_dummies似乎需要我在函数末尾使用return语句。

Select 'test'
union 
Select 'test2'

修改原始数据框

import numpy as np
import pandas as pd
data = {
    'x' : np.linspace(0,10,3) ,
    'y' : np.linspace(10,20,3) ,
    'cat1'  : ['dog','cat','fish'] , 
    'cat2' : ['website1','website1','website2'] }
df = pd.DataFrame(data)


    cat1    cat2    x   y
0   dog  website1   0.0 10.0
1   cat  website1   5.0 15.0
2   fish website2   10.020.0

不修改

def change_variable(df): 
        df['x']  = 999 

我的解决方法:

def ready_for_ml(df):
    pd.get_dummies(df,columns=['cat1','cat2'])

我已经阅读过使用inplace变换作为解决方案。 How to modify a pandas DataFrame in a function so that changes are seen by the caller?但是,我pd.get_dummies似乎没有一个inplace参数。所以,我对这个功能感到好奇,但更广泛地说是潜在的行为。

感谢您的时间。

0 个答案:

没有答案