在python中应用突然更改的函数

在python中应用突然更改的函数,python,dataframe,apply,Python,Dataframe,Apply,我试图弄清楚apply对dataframe的影响,并期望在每一行中进行相同的更改。无法计算以下程序的结果: import pandas as pd def fun(x): x[0]=x[0]*2 return x df=pd.DataFrame({"a":[1,2,3], "b":[11,12,13], "c":[10,20,30]}) df=df.apply(fun,axis=1) df=df.apply(fun,axis=1) prin

我试图弄清楚apply对dataframe的影响,并期望在每一行中进行相同的更改。无法计算以下程序的结果:

  import pandas as pd
  def fun(x):
      x[0]=x[0]*2
      return x

  df=pd.DataFrame({"a":[1,2,3], "b":[11,12,13], "c":[10,20,30]}) 
  df=df.apply(fun,axis=1) 
  df=df.apply(fun,axis=1) 
  print df 

请帮助我理解这一点。提前谢谢

应为索引为0的行:4,11,10
但将行索引为0:8,11,10 第0行x[0]中的值在第二个“应用”中以4的倍数突然变化

注释

在当前实现中,apply在第一次调用func两次 列/行来决定它可以采用快速还是慢速代码路径。 如果func有副作用,这可能会导致意外行为,因为 将对第一列/行生效两次

注释

在当前实现中,apply在第一次调用func两次 列/行来决定它可以采用快速还是慢速代码路径。 如果func有副作用,这可能会导致意外行为,因为 将对第一列/行生效两次


应用两次
df.iloc[:,0]=df.iloc[:,0]*2应该做你想做的事。应用两次
df.iloc[:,0]=df.iloc[:,0]*2应该做你想做的事。