我有一个像这样的字典
{'Note1':'Desc1','Note2':'Desc2','Note3':'Desc3'}
。
和一个数据帧,其值是这样的。
{0: 'Note1',
1: 'Note1',
2: 'Note1',
3: 'Note2',
4: 'Note2',
5: 'Note2;Note3',
6: 'Note2;Note3',
7: 'Note3',
我想有一个新的列,其中描述被映射到音符编号,所以我这样做。
df['noteText'] = df['NoteRef'].map(notelist)
这很好用,只是双倍值会返回NaN。
所以我做了这个。
def swap(x):
x = x.split(';')
for y in x:
y = map(notelist, y)
swap(df['NoteRef'].iloc[-2]) # just to test
df['noteText'] = df['NoteRef'].apply(swap)
但我真的不知道python中的map()在这里如何工作(不像在pandas中那样工作)。当我打印y
时我得到一个map对象,当我打印list(y)
时我得到TypeError: 'dict' object is not callable
。
所以我希望有人能给我指出正确的方向,因为这似乎是很容易的事情。如果有更好的方法,我将非常感谢你的学习。