Использование assign
:
df = test.assign(c3 = [[x[0]+y[0], x[1]+y[1]] for x,y in test.values.tolist()])
Или:
df = test.assign(c3 = list(map(list,zip(test.c1.str[0]+test.c2.str[0],test.c1.str[1]+test.c2.str[1]))))
print(df)
c1 c2 c3
0 [P, N] [Z, P] [PZ, NP]
1 [N, N] [Z, P] [NZ, NP]
print([[x[0]+y[0], x[1]+y[1]] for x,y in test.values.tolist()])
[['PZ', 'NP'], ['NZ', 'NP']]
print(list(map(list,zip(test.c1.str[0]+test.c2.str[0],test.c1.str[1]+test.c2.str[1]))))
[['PZ', 'NP'], ['NZ', 'NP']]