Python 在特定行/索引的一个数据帧中搜索并将值添加到特定行/索引的另一个df中
这里有一个问题 我想在我的原始DF中创建一个新列,它是来自另一个dfKey的特定索引处的值 我有点卡住了,我肯定我遗漏了一些明显的东西,但我无法解码当前的错误消息“KeyError:”Name“ 数据: 期望输出df.head: 我认为最好的方法是for循环,就像我尝试过的所有其他方法一样,比如df['Name']=np。其中df['Code']==dfKey['Code'],dfKey['Name']只比较/测试同一索引中的每一行;没有搜索 我的最新尝试: 我认为你需要合并: 输出:Python 在特定行/索引的一个数据帧中搜索并将值添加到特定行/索引的另一个df中,python,pandas,dataframe,data-cleaning,Python,Pandas,Dataframe,Data Cleaning,这里有一个问题 我想在我的原始DF中创建一个新列,它是来自另一个dfKey的特定索引处的值 我有点卡住了,我肯定我遗漏了一些明显的东西,但我无法解码当前的错误消息“KeyError:”Name“ 数据: 期望输出df.head: 我认为最好的方法是for循环,就像我尝试过的所有其他方法一样,比如df['Name']=np。其中df['Code']==dfKey['Code'],dfKey['Name']只比较/测试同一索引中的每一行;没有搜索 我的最新尝试: 我认为你需要合并: 输出:
Ticker Name Metric1 Metric999
Code
200 CRM SalesForce 350.0 375.00
250 NVID NVIDA Corp 1.4 1.20
875 TSLA Tesla Company 0.2 0.22
1200 ATVI Activision 500.0 505.00
2899 GOOGL Googlyness NaN NaN
5005 GE General Electric NaN NaN
我认为你需要合并:
输出:
Ticker Name Metric1 Metric999
Code
200 CRM SalesForce 350.0 375.00
250 NVID NVIDA Corp 1.4 1.20
875 TSLA Tesla Company 0.2 0.22
1200 ATVI Activision 500.0 505.00
2899 GOOGL Googlyness NaN NaN
5005 GE General Electric NaN NaN
IIUC:
IIUC:
哦,糟了!我知道必须有一个更简单的方法来做这件事,我喜欢python语法。速度的最佳答案,尽管我认为马祖的外形更优雅一点!谢谢哦,糟了!我知道必须有一个更简单的方法来做这件事,我喜欢python语法。速度的最佳答案,尽管我认为马祖的外形更优雅一点!谢谢
codes=df.index.tolist()
codes
for code in codes:
#1. Find Name and Ticker in Key
name = dfKey['Name'].loc[code]
ticker = dfKey['Ticker'].loc[code]
#2. Put Name and Ticker back in original
df['Name'].loc[code] = name
df['Ticker'].loc[code] = ticker
dfKey.merge(df, left_index=True, right_index=True, how='outer')
Ticker Name Metric1 Metric999
Code
200 CRM SalesForce 350.0 375.00
250 NVID NVIDA Corp 1.4 1.20
875 TSLA Tesla Company 0.2 0.22
1200 ATVI Activision 500.0 505.00
2899 GOOGL Googlyness NaN NaN
5005 GE General Electric NaN NaN
In [13]: df.join(dfKey)
Out[13]:
Metric1 Metric999 Ticker Name
Code
250 1.4 1.20 NVID NVIDA Corp
200 350.0 375.00 NaN NaN
875 0.2 0.22 TSLA Tesla Company
1200 500.0 505.00 ATVI Activision