大佬教程收集整理的这篇文章主要介绍了将数据帧与分组进行比较并找到缺失的条目 输出,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我正在处理的当前项目中,我需要根据 df_@R_489_10586@ls
检查 df_fact
数据框,并将输出作为 df_output
提供给用户,如下图的哪几行应删除,以便 df_fact
与 df_@R_489_10586@ls
协调。
问题:基本上我想尝试在公司的 df_fact['VAL']
中查找需要删除的值的组合,以便 df_fact 中公司的 VAL 总和 应该等于 df_@R_489_10586@ls['@R_489_10586@LS']
。
我相信这是一个复杂的解决方案,因为这种解决它的算法可能会通过使用组合来实现,因为我需要按公司名称删除一行或多行。
在这里你可以看到我到目前为止编写的代码来尝试解决它。我创建了一个合并的数据框来计算差异并对其进行迭代。
import pandas as pd
# group fact by company
df_fact_agg = df_fact.groupby('COMPANY',as_index=falsE).sum()
df_fact_agg.head()
# merge the two dataframes
df_compare = pd.merge(
df_@R_489_10586@ls,df_fact_agg,left_index=True,right_index=True
)
# clean the dataframe
df_compare.drop(['COMPANY_y'],axis=1,inplace=TruE)
df_compare.rename(columns={"COMPANY_x": "COMPANY","@R_489_10586@LS": "left_@R_489_10586@LS","VAL": "RIGHT_VAL"},inplace=TruE)
# create a new column to calculate the difference between values
df_compare['Diff'] = df_compare['RIGHT_VAL']-df_compare['left_@R_489_10586@LS']
# try to find find a way to solve it
for val in df_compare.COMPANY.unique().toList():
# for each unique name of company get the current difference
difference_value = df_compare[df_compare['COMPANY']==val].Diff.values[0]
# get all values from serIEs
serIEs_differences = df_fact[df_fact['COMPANY']==val]['VAL']
print('The @R_489_10586@L difference calculated is: ',difference_value)
print('The serIE that I need to work to check whether value(s) need to be deleted is: ',serIEs_differences.values)
#####################################################################
########## from Now on I do not kNow what to do #####################
################## please Help me =) ################################
#####################################################################
计算的总差为:400.0
我需要检查值是否丢失或剩余的系列是:[5000. 3000. 400.]
计算出的总差为:724.0
我需要检查值是否丢失或剩余的系列是:[ 50. 5432. 7894. 674.]
计算出的总差为:895.0
我需要检查值是否丢失或剩余的系列是:[ 896. 4578. 20. 547. 6348. 875.]
计算出的 @R_489_10586@L 差为:14451.0
我需要检查值是否丢失或剩余的系列是:[ 967. 678. 645. 87. 9564. 3564.]
df_@R_489_10586@ls
{'COMPANY': {0: 'COMPANY 1',1: 'COMPANY 2',2: 'COMPANY 3',3: 'COMPANY 4'},'@R_489_10586@LS': {0: 8000.0,1: 13326.0,2: 12369.0,3: 1054.0}}
df_fact.columns
['_KEY','COMPANY','DOC NUM','VAL']
df_fact.values
[['COMPANY 1DOC 123','COMPANY 1','DOC 123',5000.0],['COMPANY 1DOC 124','DOC 124',3000.0],['COMPANY 1DOC 125','DOC 125',400.0],['COMPANY 2DOC 126','COMPANY 2','DOC 126',50.0],['COMPANY 2DOC 127','DOC 127',5432.0],['COMPANY 2DOC 128','DOC 128',7894.0],['COMPANY 2DOC 129','DOC 129',674.0],['COMPANY 3DOC 130','COMPANY 3','DOC 130',896.0],['COMPANY 3DOC 131','DOC 131',4578.0],['COMPANY 3DOC 132','DOC 132',20.0],['COMPANY 3DOC 133','DOC 133',547.0],['COMPANY 3DOC 134','DOC 134',6348.0],['COMPANY 3DOC 135','DOC 135',875.0],['COMPANY 4DOC 136','COMPANY 4','DOC 136',967.0],['COMPANY 4DOC 137','DOC 137',678.0],['COMPANY 4DOC 138','DOC 138',645.0],['COMPANY 4DOC 139','DOC 139',87.0],['COMPANY 4DOC 140','DOC 140',9564.0],['COMPANY 4DOC 141','DOC 141',3564.0]]
df_output
{'checK columNS': {0: nan,1: nan,2: 'deletE',3: 'deletE',4: nan,5: nan,6: 'deletE',7: nan,8: nan,9: 'deletE',10: nan,11: nan,12: 'deletE',13: nan,14: 'deletE',15: 'deletE',16: nan,17: 'deletE',18: 'deletE'}}
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的将数据帧与分组进行比较并找到缺失的条目 输出全部内容,希望文章能够帮你解决将数据帧与分组进行比较并找到缺失的条目 输出所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。