python - 如何添加基于 Pandas 中另一列的值的新列

标签 python pandas dataframe

假设我有以下 df:

rs = np.random.RandomState(1979)
x = rs.randn(500)
g = np.tile(list("ABCDEFGHIJ"), 50)
df = pd.DataFrame(dict(x=x, g=g))
m = df.g.map(ord)
df["x"] += m

df

           x    g
0   64.038123   A
1   66.147050   B
2   66.370011   C
3   68.791019   D
4   70.583534   E
... ... ...
495 69.358022   F
496 72.212877   G
497 70.474247   H
498 73.251022   I
499 74.461828   J

我想添加一个新列,其中包含与字母表中的字母匹配的数字 1-10,如下所示:

g new
A  1
B  2
C  3
D  4

我正在处理的实际数据使用的是名称而不是字母,但我显然不想将它们放在这里。但同样,我的目标是创建一个新列,其中包含我想要的某些名称的值。

谢谢!

最佳答案

这听起来像是一本字典,可以将名称映射到您希望在图表中各自排序的位置。这是一个简单的例子:

>>> import pandas as pd
>>> df = pd.DataFrame({"Name": ["Alice", "Bob", "Bob", "Alice", "Charlie"]})
>>> ordering = {"Alice": 1, "Bob": 3, "Charlie": 2}
>>> df["Ordering"] = df["Name"].map(ordering)
>>> df
      Name  Ordering
0    Alice         1
1      Bob         3
2      Bob         3
3    Alice         1
4  Charlie         2

关于python - 如何添加基于 Pandas 中另一列的值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62097317/

相关文章:

python - 如何将 html 表转换为 pandas 数据框

python - 注册和登录 api 中的 Django Rest 框架

python - Pyinstaller无法构建wxpython应用程序,缺少错误wx._xml

python:如何通过添加int生成char

python - Pandas 0.14.1 StataReader - 阅读 .dta 文件

python - DataFrame问题(括号)

python - 内置对象的属性赋值

python - Pandas Dataframe 分组和标准差

python - 使用 pandas 访问器减少运行时间

r - 如何防止pmax/pmin考虑非数值?