数据框追加在函数范围之外不可见

时间:2016-08-08 15:42:32

标签: python pandas pass-by-reference

根据我对python的理解,可以在函数范围内修改对数据的可变引用,并反映外部的变化。但是下面的行为让我感到困惑:

1)考虑一个清单:

my_list = []
def checklistappend( list ):
    list.append( 1 )
checklistappend( my_list )
print ( my_list )

正如所料,变量my_list = [1]

2)但是请考虑使用数据帧的以下场景:

my_df = pd.DataFrame(columns=['A'])
def checkdfappend ( df ):
    df.append( [1] )
checkdfappend( my_df )
print( my_df )

在这种情况下,my_df的结果仍然是一个空数据框,其列'A'是非直观的,我唯一可以解释的是数据框附加方法在内部分配给一个新的变量,即我不希望的行为。

我正在使用带有pandas 0.13.1的python 2.7.2,更改其中任何一个都不在我的控制范围内。

有没有另一种方法可以在不制作这么多副本的情况下实现同样的目标?

1 个答案:

答案 0 :(得分:0)

您需要将输出分配回df

df = df.append([1])