繁体   English   中英

Pandas 中 DataFrame 中的列,值为 0

[英]Column in DataFrame in Pandas with value 0

我尝试在 Pandas bb中的 DataFrame 中创建 2 个新列,第一列aa显示平均温度值0是否正确?

问题出在哪里? 我是否正确使用了 lambda? 你能给我解决方案吗? 非常感谢!

file["aa"] = file.groupby(['City'])["Temperature"].transform(np.mean)
display(file.sample(10))

file["bb"] = file.groupby(['City'])["Temperature"].transform(lambda x: x - np.mean(x))
display(file.head(10))

编辑:根据gereleth的评论更新。 您可以进一步简化它!

file['bb'] = file.Temperature - file.aa

由于我们已经计算了aa列中的平均值,我们可以简单地重复使用该列来计算每行的Temperatureaa列的差异,方法是使用如下 pandas 应用方法:

file["aa"] = file.groupby(['City'])["Temperature"].transform(np.mean)
display(file.sample(10))
file["bb"] = file.apply(lambda row: row['Temperature'] - row['aa'], axis=1)
display(file.sample(10))

如果您想减去所有城市温度的平均值,您可以在aa列上使用平均值:

file["aa"] = file.groupby(['City'])["Temperature"].transform(np.mean)
display(file.sample(10))
avg_all_cities = file['aa'].mean()
file["bb"] = file.apply(lambda row: row['Temperature'] - avg_all_cities, axis=1)
display(file.sample(10))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM