Pandas将groupby操作的结果保存为原始数据框中的新列[关闭]

Posted

技术标签:

【中文标题】Pandas将groupby操作的结果保存为原始数据框中的新列[关闭]【英文标题】:Pandas Save the results of groupby operation as new column in the original dataframe [closed] 【发布时间】:2019-04-01 02:04:48 【问题描述】:

我要设置结果

df.groupby(['région'])['counts'].sum())

作为我的数据框的c2 列。

所以我这样做:

df['c2'] = pd.to_numeric(df.groupby(['région'])['counts'].sum()).astype(float) 

这样

pd.to_numeric(df.groupby(['région'])['counts'].sum()).astype(float)

有float类型,所以df['c2']也应该有float类型。

但是,当我尝试打印我的数据框 df['c2'] 的列时,所有值都是 NaN

我该如何解决这个问题?


编辑 1:

My code is here

【问题讨论】:

欢迎来到 Stack Overflow。不幸的是,你的问题不是很清楚。请阅读How to Ask,然后阅读edit您的问题。 谢谢!当我尝试打印我的专栏时,一切都在 NAN! 请校对并正确格式化您的问题。还请提供了解您的问题所需的所有信息,例如您的数据样本。 我的专栏将 NAN 作为值.. 我无法解决它 我不知道如何将 NAN 转换为 int 或 float。我尝试了很多东西,但它不起作用 【参考方案1】:

在您的代码中,在这部分之后:

import numpy as np
d_copy = d.copy()

这样做:

d_copy['counts2'] = d_copy.groupby(['region'])['counts'].transform('count')

结果

【讨论】:

它计算总和.. 但是当我尝试将结果放在我的数据框的列中时,它显示 NAN 当你输入 df.groupby(['région'])['counts'].sum()) 时,结果中是否包含 NaN? 不,我有整数。 1 ,5,6 只有当我这样做时它才会显示 NAN df['c2'] = pd.to_numeric(df.groupby(['région'])['counts'].sum()) 试试这个:df['c2'] = pd.to_numeric(df.groupby(['région'])['counts'].sum(), downcast='float')

以上是关于Pandas将groupby操作的结果保存为原始数据框中的新列[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 groupby 平均统计数据映射为 pandas 中的新列

Python Pandas 如何将 groupby 操作结果分配回父数据框中的列?

将 GroupBy 平均结果添加为 pandas 中的新列

Pandas groupby 和聚合输出应包括所有原始列(包括未聚合的列)

如何在 pandas groupby 对象上应用函数并将结果保存回父数据框的新列?

将 Pandas dataframe.groupby 结果写入 S3 存储桶