gpt4 book ai didi

python-3.x - 根据来自另一个数据框python pandas的部分字符串匹配替换列值

转载 作者:行者123 更新时间:2023-12-04 17:40:18 24 4
gpt4 key购买 nike

我需要根据来自不同数据帧的键更新一些单元格值。键始终是唯一的字符串,但第二个数据帧可能会或可能不会在键的开头或结尾包含一些额外的文本。 (不一定用“”隔开)

Frame: 

Keys Values

x1 1
x2 0
x3 0
x4 0
x5 1

Correction:

Name Values
SS x1 1
x2 AA 1
x4 1


Expected output Frame:

Keys Values

x1 1
x2 1
x3 0
x4 1
x5 1

我正在使用以下内容:

frame.loc[frame['Keys'].isin(correction['Keys']), ['Values']] = correction['Values']

问题是 isin 仅在精确的 mach 上返回 True(据我所知),这仅适用于我大约 30% 的数据。

最佳答案

第一个extract Frame['Keys'] 的值由 | 加入 OR:

pat = '|'.join(x for x in Frame['Keys'])

Correction['Name'] = Correction['Name'].str.extract('('+ pat + ')', expand=False)
#remove non matched rows filled by NaNs
Correction = Correction.dropna(subset=['Name'])
print (Correction)
Name Values
0 x1 1
1 x2 1
2 x4 1

然后创建字典和map对于 Correction['Name'] 的 map :

d = dict(zip(Correction['Name'], Correction['Values']))
Frame['Values'] = Frame['Keys'].map(d).fillna(Frame['Values']).astype(int)
print (Frame)
Keys Values
0 x1 1
1 x2 1
2 x3 0
3 x4 1
4 x5 1

关于python-3.x - 根据来自另一个数据框python pandas的部分字符串匹配替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com