问题描述
从数据框df开始,我想应用字典dict作为翻译表并创建另一列包含翻译结果:
输入:
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 上使用和不使用方括号,所以 value 和 [value] 但结果总是:
ValueError: 使用 ndarray 设置时必须具有相等的 len 键和值
我注意到如果我把 df.loc[df['A']==key,'D']=value,所以在 value 周围没有方括号,我会在第一次替换之前得到错误,而如果我使用方括号,错误出现在最后一个元素['purple','green']之前,所以列表有两个元素。
如何防止 Pandas 尝试解压缩列表并按原样使用值? 谢谢热心解答
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)