我正在尝试获取两个数据帧之间的差异。我尝试了两种解决方案,但这两种解决方案都给出了错误的结果。你能帮帮我吗?我哪里做错了?
我尝试了以下两种解决方案-
df_diff = df1[~df1.astype(str).apply(tuple,1).isin(df2.astype(str).apply(tuple,1))]
df_diff = pd.concat([df1,df2]).drop_duplicates(keep=False)df1:
Program Name|Updated Time|Published Time|Modified Time|Project Number|Strength|Indication|Brand Name|Generic Name|Therapeutic Area|Manufacturer Requested Reimbursement Criteria|Biosimilar|Manufacturer|Submission received|Submission accepted|Review initiated|Submission Type|Companion Diagnostics|Recommendation Date|Recommendation Type|Fee Schedule|Patient group input closed|Patient group input closed clarification|Submission Deemed Complete Target Date|Submission Deemed Complete Target Date Clarification|Submission Deemed Complete Actual Date|Submission Deemed Complete Actual Date Clarification|Call for Patient Input Date|Call for Patient Input Date Clarification|Patient Group Input Submission Received Date|Patient Group Input Submission Received Date Clarification|Patient input summary sent for review to patient input groups|Patient input summary sent for review to patient input groups clarification|Patient Group Input Summary Comment Received Date|Patient Group Input Summary Comment Received Date Clarification|CADTH Reviewers Report sent to Manufacturer Date|CADTH Reviewers Report sent to Manufacturer Date Clarification|Deadline for sponsors comments|Deadline for sponsors comments Clarification|Comments from Manufacturers on Reviewer’s Report Date|Comments from Manufacturers on Reviewer’s Report Date Clarification|Redaction Response from Manufacturer on Report Received by CADTH Date|Redaction Response from Manufacturer on Report Received by CADTH Date Clarification|CDEC Meeting Date|CDEC Meeting Date Clarification|Final recommendation issued to sponsor and drug plans|Final recommendation issued to sponsor and drug plans Clarification|Embargo Period Date|Embargo Period Date Clarification|Embargo period ended|Embargo period ended clarification|Reconsideration Meeting Date|Reconsideration Meeting Date Clarification|Final Recommendation Sent to Drug Plans and Manufacturer Date|Final recommendation posted|Reconsideration Requested|Reconsideration Requested Clarification|Deadline for sponsor to submit redaction requests on draft CADTH review report(s)|CADTH review report(s) posted|CDE_rec_crdt_dt|Cde_Rec_effctv_strt_dt|Cde_Rec_effec_end_dt
Non Oncology Pharmaceuticals|2020-12-08T23:17:00-05:00|2014-06-03T10:12:32-04:00|2020-12-08T23:17:00-05:00|SE0383-000||Ankylosing spondylitis, plaque psoriasis, psoriatic arthritis, rheumatoid arthritis|Remsima|Infliximab|Ankylosing spondylitis- arthritis, psoriatic- arthritis, rheumatoid- plaque psoriasis||Yes|Fresenius Kabi Canada||||Initial|||||||||||||||||||||||||||||||||||||||||||2021-04-08|2021-04-08|df2:
Program Name|Updated Time|Published Time|Modified Time|Project Number|Strength|Indication|Brand Name|Generic Name|Therapeutic Area|Manufacturer Requested Reimbursement Criteria|Biosimilar|Manufacturer|Submission received|Submission accepted|Review initiated|Submission Type|Companion Diagnostics|Recommendation Date|Recommendation Type|Fee Schedule|Patient group input closed|Patient group input closed clarification|Submission Deemed Complete Target Date|Submission Deemed Complete Target Date Clarification|Submission Deemed Complete Actual Date|Submission Deemed Complete Actual Date Clarification|Call for Patient Input Date|Call for Patient Input Date Clarification|Patient Group Input Submission Received Date|Patient Group Input Submission Received Date Clarification|Patient input summary sent for review to patient input groups|Patient input summary sent for review to patient input groups clarification|Patient Group Input Summary Comment Received Date|Patient Group Input Summary Comment Received Date Clarification|CADTH Reviewers Report sent to Manufacturer Date|CADTH Reviewers Report sent to Manufacturer Date Clarification|Deadline for sponsors comments|Deadline for sponsors comments Clarification|Comments from Manufacturers on Reviewer’s Report Date|Comments from Manufacturers on Reviewer’s Report Date Clarification|Redaction Response from Manufacturer on Report Received by CADTH Date|Redaction Response from Manufacturer on Report Received by CADTH Date Clarification|CDEC Meeting Date|CDEC Meeting Date Clarification|Final recommendation issued to sponsor and drug plans|Final recommendation issued to sponsor and drug plans Clarification|Embargo Period Date|Embargo Period Date Clarification|Embargo period ended|Embargo period ended clarification|Reconsideration Meeting Date|Reconsideration Meeting Date Clarification|Final Recommendation Sent to Drug Plans and Manufacturer Date|Final recommendation posted|Reconsideration Requested|Reconsideration Requested Clarification|Deadline for sponsor to submit redaction requests on draft CADTH review report(s)|CADTH review report(s) posted|CDE_rec_crdt_dt|Cde_Rec_effctv_strt_dt|Cde_Rec_effec_end_dt
Non Oncology Pharmaceuticals|2020-12-08T23:17:00-05:00|2014-06-03T10:12:32-04:00|2020-12-08T23:17:00-05:00|SE0383-000||Ankylosing spondylitis, plaque psoriasis, psoriatic arthritis, rheumatoid arthritis|Remsima|Infliximab|Ankylosing spondylitis- arthritis, psoriatic- arthritis, rheumatoid- plaque psoriasis||Yes|Fresenius Kabi Canada||||Initial|||||||||||||||||||||||||||||||||||||||||||2021-04-08|2021-04-08|在结果中,df_diff应该是空的,但却给出了错误的结果。
发布于 2021-04-08 13:44:57
有缺失值,因此可能的解决方案应该将它们替换为两者中的相同值,并与带有DataFrame.all的DataFrame.eq进行比较,以测试是否每行的所有True都:
s1 = df1.fillna('missing').stack()
s2 = df2.fillna('missing').stack()
df_diff = s1[s1.ne(s2)]
df_diff1 = s2[s1.ne(s2)]编辑:
df_diff = pd.DataFrame() if df1.fillna('missing').equals(df1.fillna('missing')) else df1https://stackoverflow.com/questions/66997923
复制相似问题