使用Python查找匹配的数组并将两个数组组合为一个

问题描述 投票:-2回答:1

[我想用Python在set1中找到x [0]和set2中x [0]的匹配数组,例如set 1中的[4012642, 0.10869565]和set 2中的[4012642, 2]。将它们组合成1个数组并用set2 [1]除以set1 [1],因此它将变为[4012642, (2/0.10869565)][4012642, 18.40]。我想对set1和set2中的每个变量执行此操作,然后放入新数组中。非常感谢您的帮助,对不起,我的措辞很混乱。

set1 = [[4012640, 0.014925373], [4012642, 0.10869565], [4012644, 0.40298506], [4012646, 0.04477612], [4012616, 0.6264330499999999], [4012618, 1.128477924], [4012620, 0], [4012622, 0.12820514], [4012624, 0.16417910000000002], [4013328, 0.16666667], [4012626, 0.149253743], [4012658, 0], [4012628, 0.41791046], [4012630, 0.28493894000000003], [4012632, 1.999999953], [4012634, 0.08955224], [4012636, 0], [4012638, 0]]


set2 = [[4012640, 2], [4012642, 2], [4012644, 2], [4012646, 1], [4012616, 5], [4012618, 8], [4012620, 1], [4012622, 2], [4012624, 5], [4013328, 2], [4012626, 6], [4012658, 1], [4012628, 4], [4012630, 8], [4012632, 4], [4012634, 4], [4012636, 1], [4012638, 1]]
python arrays python-3.x
1个回答
0
投票

就我个人而言,我更喜欢使用数据框来处理这种“加入”问题

# build two dataframe from set1 and set2 
df1=pd.DataFrame(columns=['x0','x1'])
df1['x0']=[x[0] for x in set1]
df1['x1']=[x[1] for x in set1]

df2=pd.DataFrame(columns=['x0','x2'])
df2['x0']=[x[0] for x in set2]
df2['x2']=[x[1] for x in set2]

然后在熊猫中调用合并方法以按列'x0'匹配两个数据帧

# Merge two dataframe on 'x0'
df=pd.merge(df1,df2,on=['x0'],how='left')

# Calculate a new columnn by 'x2'/'x1'
df['values']=df['x2']/df['x1']

结果:

    x0  x1  x2  values
0   4012640 0.014925    2   134.000001
1   4012642 0.108696    2   18.400000
© www.soinside.com 2019 - 2024. All rights reserved.