IIUC вам нужно DataFrame.lookup
и Series.map
с требованием сделать ваши пользовательские сопоставления.Что-то вроде:
df = pd.DataFrame({'T': {0: '.', 1: '.', 2: '.'}, 'G': {0: '.', 1: '.', 2: '.'}, 'D': {0: 4, 1: 1, 2: 5}, 'E': {0: 6, 1: 2, 2: 7}, 'F': {0: 8, 1: 3, 2: 9}, 'K': {0: '.', 1: '.', 2: '.'}, 'Y': {0: 'A', 1: 'B', 2: 'B'}, 'Z': {0: 4, 1: 2, 2: 7}})
d = {'A': 'D', 'B': 'E', 'C': 'F'}
df['Z'] = df.lookup(df.index, df.Y.map(d))
T G D E F K Y Z
0 . . 4 6 8 . A 4
1 . . 1 2 3 . B 2
2 . . 5 7 9 . B 7