我试图根据某些条件,用另一个Pandas数据框中的列填充一个Pandas数据框中的空列。
第一个表是audit_records_df
,它看起来像这样:
ID | audit_type | audit_date | 恶意级别 | suspicious_counts |
---|---|---|---|---|
123456 | 未知 | 2/5/21 | N | N |
123456 | 已清除 | 2/6/21 | N | N |
123456 | 已终止 | 2/8/21 | N | N |
345678 | 已终止 | 2/5/21 | N | N |
第二张表是spam_profile_most_recent_notes
:
ID | audit_type | audit_date | 恶意级别 | suspicious_counts | ire_1 | ire_2 |
---|---|---|---|---|---|---|
123456 | 未知 | 2/5/21 | 高的 | 3 | 222 | 222 |
345678 | 已终止 | 2/5/21 | 高的 | 6 | 222 | 222 |
请注意,与 audit_records_df
表(表中 id
可能有多行)不同, spam_profile_most_recent_notes
表中的每个表 id
只有1行。
我试图填补列maliciousness_level
,并suspicious_counts
在audit_records_df
从同一个名字的列与值表spam_profile_most_recent_notes
表(我们需要忽略列ire_1
和ire_2
),基于以下标准:
audit_records_df
表,其中id
匹配id
中spam_profile_most_recent_notes
,填充maliciousness_level
和suspicious_counts
在audit_records_df
与从对应的值表spam_profile_most_recent_notes
中的行,其中表id
匹配。填充后,audit_records_df
表格应如下所示:
ID | audit_type | audit_date | 恶意级别 | suspicious_counts |
---|---|---|---|---|
123456 | 未知 | 2/5/21 | 高的 | 3 |
123456 | 已清除 | 2/6/21 | 高的 | 3 |
123456 | 已终止 | 2/8/21 | 高的 | 3 |
345678 | 已终止 | 2/5/21 | 高的 | 6 |
我已经看到了一些类似的问题,例如:根据Pandas中的行匹配,用另一个DataFrame的值有条件地填充列。但是,我所看到的只是关于在1列中填充值,与我的用例不同,我必须为多列填充值。
任何建议将不胜感激。
我认为您可以通过以下方法解决此问题:
malicious_level
和suspicious_counts
列audit_record_df
。id
,malicious_level
并suspicious_counts
从列spam_profile_most_recent_notes
id
audit_record_df.drop(['maliciousness_level', 'suspicious_counts'], axis=1, inplace=True)
print(audit_record_df)
id audit_type audit_date
0 123456 Unknown 2/5/21
1 123456 Cleared 2/6/21
2 123456 Terminated 2/8/21
3 345678 Terminated 2/5/21
spam_profile_most_recent_notes = spam_profile_most_recent_notes[['id', 'maliciousness_level', 'suspicious_counts']]
print(spam_profile_most_recent_notes)
id audit_type audit_date
0 123456 Unknown 2/5/21
1 123456 Cleared 2/6/21
2 123456 Terminated 2/8/21
3 345678 Terminated 2/5/21
new_df = audit_record_df.merge(spam_profile_most_recent_notes, on='id', how='left')
print(new_df)
id audit_type audit_date maliciousness_level suspicious_counts
0 123456 Unknown 2/5/21 high 3
1 123456 Cleared 2/6/21 high 3
2 123456 Terminated 2/8/21 high 3
3 345678 Terminated 2/5/21 high 6
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句