我有一个大约 (1200, 10) 的大数据框,主要是字符串,我必须在现有参考列“Y”的基础上附加一个新列“Z”,其值为“A”、“B”、“C” ',或未知(NaN 或其他),我需要从中选择 df 中的三个对应列之一,例如“D”、“E”、“F”,或输出 NaN 并将此值附加为“Z”列。我目前有以下代码:
df = pd.DataFrame({'T': {0: '.', 1: '.', 2: '.', 3: '.'},
'G': {0: '.', 1: '.', 2: '.', 3: '.'},
'D': {0: 4, 1: 1, 2: 5, 3: 3},
'E': {0: 6, 1: 2, 2: 7, 3: 2},
'F': {0: 8, 1: 3, 2: 9, 3: 1},
'K': {0: '.', 1: '.', 2: '.', 3:'.'},
'Y': {0: 'A', 1: 'B', 2: 'B', 3: np.nan}})
d = {'A': 'D', 'B': 'E', 'C': 'F'}
df['Z'] = df.lookup(df.index, df.Y.map(d))
问题是查找会在 Y 是未知值的情况下发生故障。在特定的代码中,Y.unique() 会出现类似 (A, B, C, NaN, nan) 的内容。所以我想知道是否有一种方法可以使用查找式方法将 Z 输出到 NaN,其中 Y 是 NaN 或在给定字典之外未知?
T G D E F K Y Z
0 . . 4 6 8 . A 4.0
1 . . 1 2 3 . B 2.0
2 . . 5 7 9 . B 7.0
3 . . 3 2 1 . NaN NaN
隔江千里
慕丝7291255
有只小跳蛙
相关分类