gpt4 book ai didi

pandas - 根据 Pandas 中两列之间的匹配查找值

转载 作者:行者123 更新时间:2023-12-03 23:26:50 24 4
gpt4 key购买 nike

我有这个数据

import pandas as pd

data = {'Code': ['20','22','21','21','21','21','20','20','20','20'],
'Code2': ['1', '5', '2', '', '2', '2', '1', '', '1', '1']}

df = pd.DataFrame (data, columns = ['Code','Code2'])


Code Code2
0 20 1
1 22 5
2 21 2
3 21
4 21 2
5 21 2
6 20 1
7 20
8 20 1
9 20 1
我正在尝试填充 Code2 中的缺失值基于之前的关联。所以,我知道当 Code是 20, Code2为 1,当 Code是 21, Code2是 2。
我的输出应该是这样的:
  Code  Code2
0 20 1
1 22 5
2 21 2
3 21 2
4 21 2
5 21 2
6 20 1
7 20 1
8 20 1
9 20 1
我想我可以使用一些连接来做到这一点,但如果可能的话,我会热衷于使用一个衬垫。

最佳答案

使用 drop_duplicatesmap :

data = {'Code':  ['20','22','21','21','21','21','20','20','20','20'],
'Code2': ['1', '5', '2', '', '2', '2', '1', '', '1', '1']}

df = pd.DataFrame (data, columns = ['Code','Code2'])

m = df.drop_duplicates('Code').set_index('Code')['Code2']

df['Code2'] = df['Code'].map(m)
df
输出:
  Code Code2
0 20 1
1 22 5
2 21 2
3 21 2
4 21 2
5 21 2
6 20 1
7 20 1
8 20 1
9 20 1

关于pandas - 根据 Pandas 中两列之间的匹配查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62778110/

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