python - 将字典与数据框匹配
问题描述
假设我们有一个这样的字典: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
解决方案
使用.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
推荐阅读
- javascript - 无法使用 Javascript 将 div 的背景设置为线性渐变
- java - Android:对话框中的时间选择器
- php - 如何在一个 foreach 循环中使用 foreach 循环
- python - 无法从 Python 搜索谷歌结果
- android - android Room 数据库存储敏感数据是否安全?
- google-chrome-extension - 通过内容脚本将条形图注入网页
- c - 关于C语言中数组的动态内存分配
- javascript - 如何向 microsoft-cognitiveservices-speech-sdk 添加语法/提示?
- android - Xamarin 交叉通知自定义声音
- python - [docker-py SDK]: docker service update 如何传递“--config-rm”和--config-add选项