dataframe中,怎样实现old列按照new列名字重新命名,然后把结果放在第三列

以new列中的名字为标准,把old列中的名字全部替换,然后放在第三列,两列中虽然名字不一样,但其实是同一个物质,如图中标示颜色所示,
dataframe中,怎样实现old列按照new列名字重新命名,然后把结果放在第三列
代码如下:

import  pandas  as  pd
import  numpy  as  np
df = pd.DataFrame({
'old': ['醋酸铵', '氨水(5mol/L氨溶液)', '甘油', '盐酸萘乙二胺', '氨水', '硫酸铜', '钙紫红素', '冰醋酸',np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan,np.nan], 
'new': ['乙酸铵', '十二水合硫酸铝钾', '硫酸铵', '百里香酚蓝(溴酚蓝)', '钙紫红素', '间甲酚紫', '硫酸钙(无水)','氢氧化氨(氨水)', '磷酸氢二钾', '盐酸萘乙二胺', '乙二胺四乙酸二钠盐,二水', '冰醋酸(冰乙酸)','抗坏血酸(维生素C)', '氨水(5mol/L氨溶液)', '无水硫酸镁', '丙三醇(甘油)', '四水合,酒石酸钾钠','邻苯二甲酸氢钾', '磷酸二氢钾', '亚铁氰化钾', '硫酸钾', '五水合硫酸铜']})
讨论数量: 3
Jason990420

虽然名字不一样,但其实是同一个物质

有同一个物质的对照表吗? 比如

table = {'醋酸铵':'乙酸铵', '甘油':'丙三醇(甘油)',}
1个月前 评论
Cryingmango (楼主) 1个月前
import pandas as pd

import numpy as np

d = {' 乙酸铵 ':[' 醋酸铵 '],'氢氧化氨(氨水)':['氨水']}

def f(x):

    for k,v in rpl_alias.items():

        if x in v:

            return k

    return x

df['第三列'] = df['old'].apply(f)
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!