小编A. *_*tin的帖子

熊猫数据框索引匹配

我想知道是否有更有效的方法来执行在Excel中流行的“索引和匹配”类型的函数。例如,给定两个熊猫DataFrame,用在df_2中找到的信息更新df_1:

import pandas as pd

df_1 = pd.DataFrame({'num_a':[1, 2, 3, 4, 5],
                     'num_b':[2, 4, 1, 2, 3]})    
df_2 = pd.DataFrame({'num':[1, 2, 3, 4, 5],
                     'name':['a', 'b', 'c', 'd', 'e']})
Run Code Online (Sandbox Code Playgroud)

我正在使用在df_1和df_2中都具有约80,000行的数据集,我的目标是在df_1中创建两个新列,即“ name_a”和“ name_b”。

下面是我能想到的最有效的方法。有是一个更好的办法!

name_a = []
name_b = []
for i in range(len(df_1)):

    name_a.append(df_2.name.iloc[df_2[
                  df_2.num == df_1.num_a.iloc[i]].index[0]])
    name_b.append(df_2.name.iloc[df_2[
                  df_2.num == df_1.num_b.iloc[i]].index[0]])

df_1['name_a'] = name_a
df_1['name_b'] = name_b
Run Code Online (Sandbox Code Playgroud)

导致:

>>> df_1.head()
   num_a  num_b name_a name_b
0      1      2      a      b
1      2      4      b      d
2      3      1      c …
Run Code Online (Sandbox Code Playgroud)

python indexing dataframe pandas

5
推荐指数
1
解决办法
8597
查看次数

标签 统计

dataframe ×1

indexing ×1

pandas ×1

python ×1