python - 使用 pandas 对文本字段进行 vlookup

标签 python pandas join merge

我需要在 pandas 中使用 vlookup 功能。

DataFrame 2:(FEED_NAME 没有重复的行)

+-----------+--------------------+---------------------+
| FEED_NAME |        Name        |       Source        |
+-----------+--------------------+---------------------+
| DMSN      | DMSN_YYYYMMDD.txt  | Main hub            |
| PCSUS     | PCSUS_YYYYMMDD.txt | Basement            |
| DAMJ      | DAMJ_YYYYMMDD.txt  | Effiel Tower router |
+-----------+--------------------+---------------------+

数据帧 1:

+-------------+
| SYSTEM_NAME |
+-------------+
| DMSN        |
| PCSUS       |
| DAMJ        |
| :           |
| :           |
+-------------+

DataFrame 1 包含更多行数。它实际上是更大表中的一列。我需要将 df1 与 df2 合并,使其看起来像:

+-------------+--------------------+---------------------+
| SYSTEM_NAME |        Name        |       Source        |
+-------------+--------------------+---------------------+
| DMSN        | DMSN_YYYYMMDD.txt  | Main Hub            |
| PCSUS       | PCSUS_YYYYMMDD.txt | Basement            |
| DAMJ        | DAMJ_YYYYMMDD.txt  | Eiffel Tower router |
| :           |                    |                     |
| :           |                    |                     |
+-------------+--------------------+---------------------+

在 Excel 中,我只需执行 VLOOKUP(,,1,TRUE),然后在所有单元格中复制相同的内容。

我尝试了合并和连接的各种组合,但我不断收到 KeyError:'SYSTEM_NAME'

代码:

_df1 = df1[["SYSTEM_NAME"]]
_df2 = df2[['FEED_NAME','Name','Source']]
_df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"})
_df3 = pd.merge(_df1,_df2,how='left',on='SYSTEM_NAME')
_df3.head()

最佳答案

您错过了 _df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"}) 行中的 inplace=True 参数因此 _df2 列名称没有更改。试试这个:

_df1 = df1[["SYSTEM_NAME"]]
_df2 = df2[['FEED_NAME','Name','Source']]
_df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"}, inplace=True)
_df3 = pd.merge(_df1,_df2,how='left',on='SYSTEM_NAME')
_df3.head()

关于python - 使用 pandas 对文本字段进行 vlookup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693186/

相关文章:

python - Pandas 等价于 SQL CROSS JOIN(笛卡尔积)

python - 如何打印 float 而不在 python 中进行任何截断?

python - 多索引数据的堆积图

mysql - 如何使用 NULL 值将表与其自身连接

python - 按组删除 NaN 值

python - 按小时合并两个日期列

sql - 将 UNNEST 与 JOIN 结合使用

python - ParDo 中的分区和多个输出之间的区别?

jquery - 带有 jquery 的 Django 模板 : Ajax update on existing page

python - 威 bool 截尾数据