我有一个dataframe
看起来是这样的(还有其他列需要保留但未被触及,它们可以在新行中用assetClass = 99
为空):
clientID date assetClass value
10111 01-01-2020 1 10
10111 01-01-2020 2 20
10111 01-01-2020 3 30
10111 02-01-2020 1 15
10111 02-01-2020 2 25
10111 02-01-2020 3 35
从1到18有几个客户和资产类别。 这是系统的原始输出
我需要创建一个新的assetClass
,称之为99
,它由2和3的总和(实际上是11-16)组成,按date
和clientID
分组,创建一个dataframe
如下所示:
clientID date assetClass value
10111 01-01-2020 1 10
10111 01-01-2020 2 20
10111 01-01-2020 3 30
10111 01-01-2020 99 50
10111 02-01-2020 1 15
10111 02-01-2020 2 25
10111 02-01-2020 3 35
10111 02-01-2020 99 60
我像个疯子一样在谷歌上搜索,但我认为我对这个过程应该叫什么缺乏知识
我自己试图解决它,但却一事无成,所以我没有相关的代码可以展示——我该怎么做
我认为一些布尔掩蔽已经到位。对格式错误表示歉意。在手机上
mask_date = (df[‘date’]==date)
mask_assetClass = (df[‘assetClass’].isin(listOfAssets))
mask = (mask_date & mask_assetClass)
value_sum = df.loc[mask,’value’].sum()
我不确定这是否是添加新数据的正确方法
df=df.append({‘clientID’:10111,’date’:date,‘assetClass’:99,’value’:value_sum})
我认为您需要使用额外的资产类创建一个新的数据框架。例如:
我找不到比这更精干的方法了
下面是我测试过的工作代码的简短说明,您不必显式复制
相关问题 更多 >
编程相关推荐