pandas - 从字典向数据框添加新列

Fab*_*nna 54 python pandas

我想在数据框中添加一个列'D',如下所示:

U,L
111,en
112,en
112,es
113,es
113,ja
113,zh
114,es
Run Code Online (Sandbox Code Playgroud)

基于以下词典:

d = {112: 'en', 113: 'es', 114: 'es', 111: 'en'}
Run Code Online (Sandbox Code Playgroud)

以便生成的数据框显示为:

U,L,D
111,en,en
112,en,en
112,es,en
113,es,es
113,ja,es
113,zh,es
114,es,es
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试了该pd.join()方法,但我无法弄清楚它如何与字典一起使用.

EdC*_*ica 101

调用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
Run Code Online (Sandbox Code Playgroud)


Saw*_*ant 20

这是一种应该运行良好的简单方法:

df["D"] = pd.Series(d)

注意:dict键需要在DataFrame索引中.


Yua*_*Tao 7

TypeError: 'dict' object is not callable当我尝试使用index.map()时,我得到了EdChum解决方案的错误...而且我还没有找到一种方法来获得索引作为系列.

所以我通过首先从dict对象创建一个Series对象找到了另一个解决这个问题的方法.

new_d = pd.Series(d)
Run Code Online (Sandbox Code Playgroud)

然后使用您喜欢的列执行pd.join.这可能有所帮助.