首页 > 解决方案 > 我如何为基于其他列名的空列添加值

问题描述

框架:

姓名 迎合
1 一个
2 一个
3 b
4 C
5 d
6 b
7 b
8 C

我想要的是:

数组 = [3.234,2.467,4.56,4.7]

姓名 迎合 平均
1 一个 3.234
2 一个 3.234
3 b 2.467
4 C 4.56
5 d 4.7
6 b 2.467
7 b 2.467
8 C 4.56

我知道这有点奇怪,我只想将数组值用于更正基于位置的餐饮名称。我定义了一个函数试图实现这一点,不知道为什么我只是在正确的位置添加第一个数组,其他的仍然为空,我对 python 很差。

标签: pythonpandas

解决方案


利用.map()

import pandas as pd
import numpy as np

framework = pd.DataFrame({
    "name": np.arange(8),
    "cater": ['a','a','b','c','d','b','b','c',]
})

map_ = {'a': 3.234, 'b': 2.467, 'c': 4.56, 'd': 4.7}

framework["average"] = framework["cater"].map(map_)
print(framework)

出去:

   name cater  average
0     0     a    3.234
1     1     a    3.234
2     2     b    2.467
3     3     c    4.560
4     4     d    4.700
5     5     b    2.467
6     6     b    2.467
7     7     c    4.560

推荐阅读