элементы списка zip в разных столбцах - PullRequest
3 голосов
/ 22 июня 2019
a=[['1','2'],['3','4']]
b=[['5','6'],['7','8']]
df14=pd.DataFrame({'key':a,'hi':b})

я хочу добавить 3-й столбец с кортежами, где каждый элемент списка из «ключа» сопоставляется с его индексом списка в «hi» -> например, что он выглядит следующим образом.

       key    hi      tup
0   [1, 2]  [5, 6]  [(1,5),(2,6)]
1   [3, 4]  [7, 8]  [(3,7),(4,8)]

Я знаю, что должен использовать функцию zip, но я не могу понять ваш синтаксис правильно.я думаю, что это должно быть что-то вроде

for index,row in df14.iterrows():
   df14['tup']=df14.key.apply(lambda x: zip(x,df14.hi))

, но это как-то не так

1 Ответ

4 голосов
/ 22 июня 2019

Здесь iterrows не требуется, вторая строка изменена для применения лямбда-функции к строке на axis=1 и изменена d14.hi для x.hi для возвращаемых значений на строку hi столбца:

df14['tup'] = df14.apply(lambda x: list(zip(x.key,x.hi)), axis=1)
print (df14)
      key      hi               tup
0  [1, 2]  [5, 6]  [(1, 5), (2, 6)]
1  [3, 4]  [7, 8]  [(3, 7), (4, 8)]
...