提问者:小点点

pandas-从dictionary[重复]向dataframe添加新列


我想向数据帧添加一列“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()方法,但我不知道它是如何与字典一起工作的。


共3个答案

匿名用户

调用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。加入你喜欢的专栏。这可能会有帮助。