Python Pandas中的DataFrame中的多索引难于聚合?

bruno845

您好!我有如下数据框:

df = pd.DataFrame({"ID" : ["1", "1", "1", "2", "3"],
                   "ID2" : [10, 11, 10, 13, 14],
                   "ID3" : [1,2,1,4,5],
                   "code" : ["T", "N", "T", "T", np.nan],
                   "count" :[100, 200, 300 ,560,500]})

df.set_index(["ID", "ID2", "ID3"], inplace=True)

而且我需要在此数据帧中添加“ col1”,其中将包含:
“ count”列的总和,其中每个多索引的“ code”列为“ T”

所以我需要如下结果。400 in 1和3之类的,因为300 + 100 = 400当然没有解决方案“这3是多索引”,它可以帮助您:)

在此处输入图片说明

耶斯列尔

使用Series.where方法为更换count至misisng值,如果没有Tcode,则使用GroupBy.transform的总和每ID到新列和最后一组NaN,如果没有匹配小号T

m = df['code'].eq('T')
df['col1'] = df['count'].where(m).groupby(level=0).transform('sum').where(m)
print (df)
           code  count   col1
ID ID2 ID3                   
1  10  1      T    100  400.0
   11  2      N    200    NaN
   10  1      T    300  400.0
2  13  4      T    560  560.0
3  14  5    NaN    500    NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Pandas中的DataFrame中的多索引存在难题吗?

Python Pandas中DataFrame中的值聚合?

聚合python pandas dataframe中的行

Python Pandas中DataFrame的复杂聚合?

聚合多列并获取Pandas Python中的平均值

Pandas Dataframe 中的索引行不在索引列表中(Python)

如何在 Python 中的 Datetime 索引值之间聚合具有一致 timedelta 的 Pandas DataFrame 行?

在Python熊猫中聚合DataFrame?

Python Pandas:填充日期在多索引中的范围

python / pandas中的条件聚合

python:使用多索引结构聚合数据透视表中的列

熊猫python中的多索引

Python中的多索引循环

Python Pandas:检查列表中的项目是否在 df 索引中,其中 df 是多索引 df

在Python Pandas DataFrame中设置索引名称的最佳方法

Python Pandas:根据DataFrame中的值查找索引

从 Pandas Dataframe 中的多列返回值频率,python

Python 中难于将 XML 转换为字典

Python Pandas 多索引

在 Pandas python 中聚合数据

合并Python中的多索引系列列表

Python Pandas DataFrame融化多索引多层次

如何聚合 DataFrame 以保留日期最高的行并在 Python Pandas 中添加新列?

Python Pandas DataFrame索引

Python(Pandas):将数据框存储在具有多索引的hdf5中

Pandas:如何在python3中的混合类型多索引中使用切片?

python pandas:在多索引数据框中重命名单列标签

python,pandas,使用groupby计算具有多索引的df中的平均值

Python Pandas中的堆叠/拆栈多索引数据透视表