簡體   English   中英

用另一個 dataframe 的值填充多列

[英]Fill multiple columns with value from another dataframe

我正在嘗試在一個 Pandas dataframe 中填充一個 Pandas Z6A8064B5DF47945557DZ555 的列中的空列,基於某些條件。

第一個表是audit_records_df ,它看起來像這樣:

ID 審計類型 審計日期 惡意級別 可疑計數
123456 未知 2/5/21
123456 清除 2/6/21
123456 終止 2/8/21
345678 終止 2/5/21

第二個表是spam_profile_most_recent_notes

ID 審計類型 審計日期 惡意級別 可疑計數 憤怒_1 憤怒_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 行。

我正在嘗試使用 spam_profile_most_recent_notes 表中同名列的值填充audit_records_df表中的maliciousness_level級別和suspicious_counts spam_profile_most_recent_notes列(我們需要忽略列ire_1ire_2 ),基於以下標准:

  • 對於 audit_records_df 表中idspam_profile_most_recent_notes中的id匹配的行,使用audit_records_df表中id匹配的行中的相應值spam_profile_most_recent_notes audit_records_df中的maliciousness_level級別和suspicious_counts計數。

填充之后, audit_records_df表應該是這樣的:

ID 審計類型 審計日期 惡意級別 可疑計數
123456 未知 2/5/21 高的 3
123456 清除 2/6/21 高的 3
123456 終止 2/8/21 高的 3
345678 終止 2/5/21 高的 6

我見過一些類似的問題: 有條件地根據 Pandas 中的行匹配,用另一個 DataFrame 的值填充列 但是,我所看到的只是在 1 列中填寫值,這與我必須為多列填寫值的用例不同。

任何建議將不勝感激。

我認為您可以通過以下方式解決此問題:

  1. audit_record_df表中刪除malicious_level級別和suspicious_counts計數列。
  2. 僅保留spam_profile_most_recent_notes中的idmalicious_levelsuspicious_counts計數列
  3. 使用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   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM