从dataframedf开始,我想将dictionarydict应用为翻译表,并创建另一个包含翻译结果的列:
输入:
df=pd.DataFrame({'A': 'foo bar one123 bar foo one324 foo 0'.split(),
'B': 'one546 one765 twosde three twowef two234 onedfr three'.split(),
'C': 'lol'})
输出:
A B C
0 foo one546 lol
1 bar one765 lol
2 one123 twosde lol
3 bar three lol
4 foo twowef lol
5 one324 two234 lol
6 foo onedfr lol
7 0 three lol
替换词典:
dict={'foo':['blue'],'bar':['red'],'one123':['purple','green']}
对于“a”列中每出现一个dict键,我想将dict的值分配给一个新的“D”列。请注意,dict的某些值是包含一个或两个元素的列表
for key,value in dict.items():
df.loc[df['A']==key,'D']=[value]
我试过在值上使用方括号和不使用方括号,所以值和[value]都是如此,但结果总是:
ValueError: Must have equal len keys and value when setting with an ndarray
我注意到,如果我把df.loc[df['A']==key,'D']=value,那么如果在value周围没有方括号,我会在第一次替换之前得到错误,而如果我使用方括号,错误会出现在最后一个元素['purple','green']之前,所以列表中有两个元素
我怎样才能防止pandas试图解包列表,只使用原样的值? 谢谢你善意的回答
目前没有回答
相关问题 更多 >
编程相关推荐