Pandas数据框 - 从dict添加列

时间:2015-12-04 22:49:04

标签: python pandas dataframe

我有

    df = pd.DataFrame.from_dict({'col1':['A','B', 'B', 'A']})
   col1
0    A
1    B
2    B
3    A


    other_dict = {'A':1, 'B':0}

我想在df中附加一列,所以它看起来像这样:

    col1  col2
0    A     1
1    B     0
2    B     0
3    A     1

2 个答案:

答案 0 :(得分:1)

一种选择是使用申请:

In [11]: df["col1"].apply(other_dict.get)
Out[11]:
0    1
1    0
2    0
3    1
Name: col1, dtype: int64

然后将其分配给列:

df["col2"] = df["col1"].apply(other_dict.get)

另一个可能更有效的(如果你有更大的组)是使用转换:

In [21]: g = df.groupby("col1")

In [22]: g["col1"].transform(lambda x: other_dict[x.name])
Out[22]:
0    1
1    0
2    0
3    1
Name: col1, dtype: object

还值得链接到categorical section of the docs

答案 1 :(得分:1)

您还可以使用map

In [3]:
df['col2'] = df['col1'].map(other_dict)
df

Out[3]:
  col1  col2
0    A     1
1    B     0
2    B     0
3    A     1