【发布时间】:2021-06-11 23:00:13
【问题描述】:
我有一个数据框 DF1:
| 1 | 2 | 3 | 4 | ID |
|---|---|---|---|---|
| 1 | 121 | 1313 | + | 102466751 |
| 2 | 112 | 133 | + | 6147 |
| 3 | 122 | 313 | - | 55207 |
| 4 | 212 | 413 | - | 113655 |
| 5 | 1012 | 343 | + | 79501 |
和另一个数据框 DF2"
| no | Ensmbl | ID |
|---|---|---|
| 1212 | ENSG00000146083 | 22838 |
| 1512 | ENSG00000198242 | 6147 |
| 1262 | ENSG00000134108 | 55207 |
| 1219 | ENSG00000167700 | 113655 |
| 1512 | ENSG00000070087 | 521 |
我正在尝试使用以下最终 Dataframe DF3,它看起来像:
| 1 | 2 | 3 | 4 | ID |
|---|---|---|---|---|
| 1 | 121 | 1313 | + | 102466751 |
| 2 | 112 | 133 | + | ENSG00000198242 |
| 3 | 122 | 313 | - | ENSG00000134108 |
| 4 | 212 | 413 | - | ENSG00000167700 |
| 5 | 1012 | 343 | + | 521 |
DF3 在 DF2.ensembl 中包含当且仅当 DF1.ID == DF2.ID 否则 DF1.ID 保持不变。
我用 Python 写的:
DF3['ID'] = DF1['ID'].apply(lambda x: DF2['Ensembl'] if DF1['ID'] == DF2['ID'] else DF1['ID'])
值错误是:
ValueError: 只能比较标签相同的 Series 对象
有什么帮助吗?
【问题讨论】:
标签: python dataframe indexing replace merge