我想向数据帧添加一列“D”,如下所示:
U,L
111,en
112,en
112,es
113,es
113,ja
113,zh
114,es
基于以下词典:
d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'}
这样产生的数据帧显示为:
U,L,D
111,en,en
112,en,en
112,es,en
113,es,es
113,ja,es
113,zh,es
114,es,es
到目前为止,我尝试了pd.join()
方法,但我不知道它是如何与字典一起工作的。
调用map
并传递dict,这将执行查找并返回该键的关联值:
In [248]:
d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'}
df['D'] = df['U'].map(d)
df
Out[248]:
U L D
0 111 en en
1 112 en en
2 112 es en
3 113 es es
4 113 ja es
5 113 zh es
6 114 es es
这里有一个简单的方法也应该很好地工作:
df["D"]=pd.系列(d)
注意:在DataFrame索引中,需要有判断键。
我得到了TypeError:当我尝试使用索引时,EdChum的解决方案的'dict'对象不可调用
错误。映射()。。。我还没有找到一种方法来获取索引作为序列。
因此,我找到了解决这个问题的另一个方法,首先通过从判决对象创建一个Series对象。
new_d = pd.Series(d)
然后做pd。加入你喜欢的专栏。这可能会有帮助。