【发布时间】:2020-12-18 11:24:37
【问题描述】:
大家好,我需要你的智慧,
我还是 python 和 pandas 的新手,我希望实现以下目标。
df = pd.DataFrame({'code': [125, 265, 128,368,4682,12,26,12,36,46,1,2,1,3,6], 'parent': [12,26,12,36,46,1,2,1,3,6,'a','b','a','c','f'], 'name':['unknow','unknow','unknow','unknow','unknow','unknow','unknow','unknow','unknow','unknow','g1','g2','g1','g3','g6']})
ds = pd.DataFrame({'code': [125, 265, 128,368,4682], 'name': ['Eagle','Cat','Koala','Panther','Dophin']})
我想在 ds 数据框中添加一个具有最高父级名称的新列。
以第一行为例:
code | name | category
125 | Eagle | a
“a”是df.code和df.parent125 > 12 > 1 > a之间循环的结果
由于最后一个父级不是数字而是字母,我认为我必须使用正则表达式而不是 pandas 的 .merge 来填充 ds['category'] 列。也可能使用 apply 函数,但它似乎有点超出我目前的知识。
谁能帮我解决这个问题?
问候,
【问题讨论】:
-
您的
df定义不正确(ValueError: 数组的长度必须相同) -
真的很抱歉我编辑了帖子。