【发布时间】:2021-05-14 19:48:06
【问题描述】:
我正在尝试根据某些条件用另一个 Pandas 数据帧中的列填充一个 Pandas 数据帧中的空列。
第一个表是audit_records_df,它看起来像这样:
| id | audit_type | audit_date | maliciousness_level | suspicious_counts |
|---|---|---|---|---|
| 123456 | Unknown | 2/5/21 | NaN | NaN |
| 123456 | Cleared | 2/6/21 | NaN | NaN |
| 123456 | Terminated | 2/8/21 | NaN | NaN |
| 345678 | Terminated | 2/5/21 | NaN | NaN |
第二张表是spam_profile_most_recent_notes:
| id | audit_type | audit_date | maliciousness_level | suspicious_counts | ire_1 | ire_2 |
|---|---|---|---|---|---|---|
| 123456 | Unknown | 2/5/21 | high | 3 | 222 | 222 |
| 345678 | Terminated | 2/5/21 | high | 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(我们需要忽略列ire_1 和ire_2),基于符合以下标准:
- 对于
audit_records_df表中id与spam_profile_most_recent_notes中的id匹配的行,将audit_records_df表中的maliciousness_level和suspicious_counts填入audit_records_df表中spam_profile_most_recent_notes表中@ 987654346@ 匹配。
填充后,audit_records_df 表应如下所示:
| id | audit_type | audit_date | maliciousness_level | suspicious_counts |
|---|---|---|---|---|
| 123456 | Unknown | 2/5/21 | high | 3 |
| 123456 | Cleared | 2/6/21 | high | 3 |
| 123456 | Terminated | 2/8/21 | high | 3 |
| 345678 | Terminated | 2/5/21 | high | 6 |
我见过一些与此类似的问题:Conditionally fill column with value from another DataFrame based on row match in Pandas。但是,我所看到的只是在 1 列中填写值,这与我必须为多列填写值的用例不同。
任何建议将不胜感激。
【问题讨论】:
-
不是合并吗?