假设我们有一个这样的字典:dic = {"2019-01" : "0.3", "2019-02": "0.4", "2019-03": "0.5"}
和这样的数据框:
ID Date Volume Sales
0 1 2019-01 3.333333 1.333333
1 1 2019-01 3.333333 1.333333
2 1 2019-01 3.333333 1.333333
3 1 2019-02 2.666667 2.000000
4 1 2019-02 2.666667 2.000000
5 1 2019-02 2.666667 2.000000
6 1 2019-03 2.000000 2.666667
7 1 2019-03 2.000000 2.666667
8 1 2019-03 2.000000 2.666667
9 2 2019-01 1.333333 3.333333
10 2 2019-01 1.333333 3.333333
11 2 2019-01 1.333333 3.333333
有没有办法创建一个将字典与数据框“日期”列相匹配的列
输出看起来像:
ID Date Volume Sales dic
0 1 2019-01 3.333 1.333 0.3
1 1 2019-01 3.333 1.333 0.3
2 1 2019-01 3.333 1.333 0.3
3 1 2019-02 2.667 2.000 0.4
4 1 2019-02 2.667 2.000 0.4
5 1 2019-02 2.667 2.000 0.4
6 1 2019-03 2.000 2.667 0.5
7 1 2019-03 2.000 2.667 0.5
8 1 2019-03 2.000 2.667 0.5
9 2 2019-01 1.333 3.333 0.3
10 2 2019-01 1.333 3.333 0.3
11 2 2019-01 1.333 3.333 0.3
答案 0 :(得分:3)
使用.map()
:
dic = {"2019-01": "0.3", "2019-02": "0.4", "2019-03": "0.5"}
df["dic"] = df["Date"].map(dic)
print(df)
打印:
ID Date Volume Sales dic
0 1 2019-01 3.333333 1.333333 0.3
1 1 2019-01 3.333333 1.333333 0.3
2 1 2019-01 3.333333 1.333333 0.3
3 1 2019-02 2.666667 2.000000 0.4
4 1 2019-02 2.666667 2.000000 0.4
5 1 2019-02 2.666667 2.000000 0.4
6 1 2019-03 2.000000 2.666667 0.5
7 1 2019-03 2.000000 2.666667 0.5
8 1 2019-03 2.000000 2.666667 0.5
9 2 2019-01 1.333333 3.333333 0.3
10 2 2019-01 1.333333 3.333333 0.3
11 2 2019-01 1.333333 3.333333 0.3