为了账号安全,请及时绑定邮箱和手机立即绑定

在比较两个数据帧时,是否有任何有效的方法可以为单元格分配 id?

在比较两个数据帧时,是否有任何有效的方法可以为单元格分配 id?

侃侃无极 2021-09-25 21:00:53
我想为 df2 中的数据连续分配一个特定的 ID,并基于此,ID 我想转换它在 df1 中的所有出现。我写的代码需要很多时间来执行。有没有其他办法?for i in range (0,35261):    for j in range (0,54793):        if (df2.V_ID[i] == df.V_ID[j]):            df.V_ID[j] = idf 的示例数据:        time               IP1           IP2        GETVIDEO    V_ID                       IP30   2008-03-11 17:28:17 63.22.65.77 205.181.173.92  GETVIDEO    ORDhCi6JQaY&signature   254.212.25.1691   2008-03-11 17:28:20 63.22.65.94 35.139.184.95   GETVIDEO    xEcFchOvj4Y&signature   254.212.19.2552   2008-03-11 17:28:22 63.22.65.73 35.139.176.183  GETVIDEO    z-oBoCMSfbw&signature   254.212.19.1963   2008-03-11 17:28:23 63.22.65.73 102.15.230.123  GETVIDEO    pSo-_TavE1U&signature   254.212.25.2064   2008-03-11 17:28:23 63.22.65.77 102.15.134.225  GETVIDEO    kHtaORb0LUk&signature   254.212.22.1225   2008-03-11 17:28:23 63.22.65.77 102.15.111.222  GETVIDEO    t7qjlPPmeJE&origin  105.136.78.1156   2008-03-11 17:28:27 63.22.65.73 35.139.31.8     GETVIDEO    2UPaRi0WY7c&origin  105.136.78.1157   2008-03-11 17:28:28 63.22.65.73 102.15.143.68   GETVIDEO    lAzrUxpybs0&signature   254.212.21.1308   2008-03-11 17:28:30 63.22.65.73 205.181.139.118 GETVIDEO    J_KKyw8V-l0&origin  105.136.78.1159   2008-03-11 17:28:31 63.22.65.73 102.15.143.20   GETVIDEO    xnsPfRdSU0Q&origin  105.136.78.11510  2008-03-11 17:28:34 63.22.65.94 102.15.141.151  GETVIDEO    qDKx6CkQM04&origin  105.136.78.115df2 的示例数据:        V_ID            count0   2UPaRi0WY7c&origin  7681   t7qjlPPmeJE&origin  1422   CKrTlXN9-iE&origin  1073   IZtPejST9IQ&origin  1034   FKb3qRljGBc&origin  935   LcM0OT6mnqA&origin  676   7sei-eEjy4g&origin  627   qDKx6CkQM04&origin  538   4rb8aOzy9t4&origin  469   wjv4Fp7GiGk&origin  4610  SKDXBvPIepI&sign    44
查看完整描述

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

import pandas as pd 


df2 = pd.DataFrame({'V_ID': ['a','b','c','d'], 'count':[12,5,7,9]})

df = pd.DataFrame({'time':['2008-03-11', '2008-03-11', '2008-03-11','2008-03-11', '2008-03-11', '2008-03-11', '2008-03-11'],

                   'V_ID': ['a', 'sdf', 'c','rge', 'gfg', 'a', 'a']})


# Create an index column for df2

df2 = df2.reset_index()


# Key-value pairs of index and V_ID

mapping = df2['V_ID'].to_dict()


# Invert key-value pairs 

mapping = {v: k for k, v in mapping.items()}


# Replace values in df['V_ID'] that matches with keys in mapping with values

df['V_ID'] = df['V_ID'].replace(mapping)


print(df)


         time V_ID

0  2008-03-11    0

1  2008-03-11  sdf

2  2008-03-11    2

3  2008-03-11  rge

4  2008-03-11  gfg

5  2008-03-11    0

6  2008-03-11    0


查看完整回答
反对 回复 2021-09-25
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信