Как добавить новый столбец со значениями на основе другого столбца в pandas - PullRequest
3 голосов
/ 30 мая 2020

Допустим, у меня есть следующий 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

В реальных данных, с которыми я работаю, используются имена вместо букв алфавита, но я, очевидно, не хочу приводить их здесь. Но опять же, моя цель - создать новый столбец со значениями, которые мне нужны для определенных имен.

Спасибо!

1 Ответ

3 голосов
/ 30 мая 2020

Похоже, словарь, который сопоставляет имена с соответствующими упорядоченными позициями, которые вы хотите на своем графике, - это путь к go. Вот простой пример:

>>> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...