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 操作结果分配回父数据框中的列?
Pandas groupby 和聚合输出应包括所有原始列(包括未聚合的列)