我正在处理一项涉及数据帧中匹配代码的任务。有人告诉我,如果我把关系安排得很好,我就可以用图表(数据结构)来完成。不幸的是,我对图形一无所知,所以我不知道该怎么做。你知道吗
我想根据以下标准匹配“代码”:
下面是一个帧和所需输出的示例。你知道吗
给定初始左侧,右侧是我想要接收的结果。这里,公司3已经改变了“代码”,因为它的子序列(1140 1140 1115 1115 1118)不太常见(比1140 1140 1115 1115 1117,它出现在两个id中)。ids1和ids2有匹配的子序列(由一颗星和两颗星标记),这使得我们可以得出结论,这两个序列具有相同的初始代码,因此我们将代码1140应用于id2。你知道吗
year id code year id code
2004 1 1140 2004 1 1140
2005 1 1140 2005 1 1140
2006 1 1115* 2006 1 1140
2007 1 1115* 2007 1 1140
2008 1 1117* 2008 1 1140
2006 2 1115** 2006 2 1140
2007 2 1115** 2007 2 1140
2008 2 1117** 2008 2 1140
2004 3 1140 2004 3 1140
2005 3 1140 2005 3 1140
2006 3 1115 2006 3 1140
2007 3 1115 2007 3 1140
2008 3 1118*** 2008 3 1118
我的匹配规则太复杂了吗?图形真的是最好的方法吗?在这种情况下,我从哪里开始?你能想出一个更简单的方法吗?你知道吗
我知道这有点混乱,所以请让我知道如果需要澄清。非常感谢。你知道吗
编辑:
我做了一个非常初步的尝试。我的尝试只成功地替换了特定id中的值,即使这样,我也不知道如何将其分配回原始数据帧。你知道吗
# group by id
by_id = df.groupby(['id'])
# replace with first code in each group
for name, group in by_id:
selected = group['id'].reset_index()
selected['id'] = selected['id'][0]
目前没有回答
相关问题 更多 >
编程相关推荐