[英]vlookup on text field using pandas
I need to use vlookup functionality in pandas. 我需要在熊猫中使用vlookup功能。
DataFrame 2:
(FEED_NAME has no duplicate rows) 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 |
+-----------+--------------------+---------------------+
DataFrame 1:
+-------------+
| SYSTEM_NAME |
+-------------+
| DMSN |
| PCSUS |
| DAMJ |
| : |
| : |
+-------------+
DataFrame 1 contains lot more number of rows. DataFrame 1包含更多行。 It is acutally a column in much larger table.
它实际上是更大的表中的一列。 I need to merger df1 with df2 to make it look like:
我需要将df1与df2合并,使其看起来像:
+-------------+--------------------+---------------------+
| SYSTEM_NAME | Name | Source |
+-------------+--------------------+---------------------+
| DMSN | DMSN_YYYYMMDD.txt | Main Hub |
| PCSUS | PCSUS_YYYYMMDD.txt | Basement |
| DAMJ | DAMJ_YYYYMMDD.txt | Eiffel Tower router |
| : | | |
| : | | |
+-------------+--------------------+---------------------+
in excel I just would have done VLOOKUP(,,1,TRUE) and then copied the same across all cells. 在excel中,我只是要做VLOOKUP(,, 1,TRUE),然后在所有单元格中复制相同的内容。
I have tried various combinations with merge and join but I keep getting KeyError:'SYSTEM_NAME'
我尝试了合并和
KeyError:'SYSTEM_NAME'
各种组合,但是我一直收到KeyError:'SYSTEM_NAME'
Code: 码:
_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()
You missed the inplace=True
argument in the line _df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"})
so the _df2
columns name haven't changed. 您错过了
_df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"})
行中的_df2.rename(columns = {'FEED_NAME':"SYSTEM_NAME"})
inplace=True
参数 ,因此_df2
列名称未更改。 Try this instead : 试试这个代替:
_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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.