我有一个如下所示的日志文件
源日志文件
OrderID,PathCode
1000,0
2000,1
3000,2
4000,1
5000,2
6000,0
7000,2
8000,1
9000,0
但目标日志文件不包含它来自的PathCode,它只知道如下的序列。
OrderID
3000
9999 #Ignore this since not in source OrderID
1000
2000
5000
9991 #Ignore this since not in source OrderID
4000
6000
9000
8000
7000
9998 #Ignore this since not in source OrderID
如何将PathCode添加到dest文件。 OrderID始终是唯一的
预期产出
OrderID,PathCode
3000,2
1000,0
2000,1
5000,2
4000,1
6000,0
9000,0
8000,1
7000,2
基本上我必须按照目标文件
中给出的顺序对源文件进行排序答案 0 :(得分:1)
您可以使用地图
dest['pathcode'] = dest['OrderID'].map(source.set_index('OrderID')['PathCode'])
你得到了
OrderID pathcode
0 3000 2
1 1000 0
2 2000 1
3 5000 2
4 4000 1
5 6000 0
6 9000 0
7 8000 1
8 7000 2
要获取3行组并找到第一个路径码,请尝试
dest.iloc[0::3, 1].value_counts() #df.iloc[0::3] returns row no 0,3,6,9 etc
2 2
0 1
所以路径码2首先出现2次,0次,1次。
编辑: 我用你的测试用例dest文件尝试了代码。地图按预期工作,你需要删除,但你还需要重新索引切片才能工作。
dest.dropna(inplace=True)
dest.reset_index(drop=True, inplace=True)
dest.iloc[0::3, 1].value_counts()
你得到了
2 2
0 1