假设我有以下 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/