遍历行时,Python不更新数据框

时间:2019-02-02 10:27:42

标签: python pandas dataframe series

我不明白为什么python无法更新我的dataframe对象: 代码段是这样的:

for index, row in df.iterrows():
   t = df.loc[index, :"score"]
   b = [float(i) for i in t if i != 's']
   m = sum(b)/len(b)

   df.at[index, "score"] = m

   print(df.at[index, "score"]) # Does not print out m, it prints out 0, the default value

此代码段应该做的事情是连续获取所有值,计算平均值,然后将该平均值添加到数据框中。

1 个答案:

答案 0 :(得分:1)

迭代在行的DataFrame非常罕的路要走。 而是使用
df.loc[:, :'score'].mean('columns')
这是更好的可读性和快得多。

要直接回答您的问题(为什么您的方式行不通),我们需要更多信息(请参阅评论)。