pandas 在python中基于两个单独列表的索引组合两个列表的元素

qxgroojn  于 2022-12-28  发布在  Python
关注(0)|答案(3)|浏览(141)

我在python中有四个列表,我们将它们命名为A、Ai、B和Bi
A和B是数字列表
Ai和Bi是字符串的列表,这些字符串在列表中的位置对应于列表的相同位置中具有相同字母的数字
例如

A = [3, 4, 2]

B = [2, 7, 6]

Ai = ["Joe", "John", "Jim"]

Bi = ["John", "Jim", "Joe"]

(Joe例如,与3和6(分别在A和B中)相关联)
我需要一种方法来合并乔的数字,并有一种方法来知道这个组合是乔的数字。
理想情况下,我会有一个排序列表,每个列表包含Ai或Bi中每个字符串的A和B的组合编号(它们将是相同的字符串),以及第二个列表,其中的字符串使每个字符串都与编号匹配(就索引而言)。
我试过为A和B创建一个关联列表(将字符串与数字相关联),并以某种方式将它们组合起来,但失败了。

zzzyeukh

zzzyeukh1#

按照你合并这四个列表的方式,先创建两个dict,最后合并它们。
代码:

dic=dict(zip(Ai, [[i] for i in A]))
{dic[k].append(dict(zip(Bi, B))[k]) for k,v in dic.items()}
dic

输出:

{'Joe': [3, 6], 'John': [4, 2], 'Jim': [2, 7]}
pinkon5k

pinkon5k2#

out = pd.concat([pd.Series(A, index=Ai), pd.Series(B, index=Bi)], keys=['A', 'B'], axis=1)

第一个月

A   B
Joe     3   6
John    4   2
Jim     2   7
fdx2calv

fdx2calv3#

我想帮忙,但因为我还是新手,所以我用的是javascript。^_^

A = [3, 4, 2];
B = [2, 7, 6];

Ai = ["Joe", "John", "Jim"];
Bi = ["John", "Jim", "Joe"];

for (let i = 0; i < Ai.length; i++) {
  for (let j = 0; j < Bi.length; j++) {
    if (Ai[i] == Bi[j]) {
      let result = Ai[i] + ', (' + A[i] + ', ' + B[j] + '), ' + (A[i] + B[j]);
      console.log(result);
    }
  }
}

结果是

Joe, (3, 6), 9
John, (4, 2), 6
Jim, (2, 7), 9

相关问题