簡體   English   中英

如何添加基於 pandas 中另一列的值的新列

[英]How to add new column with values based on another column in pandas

可以說我有以下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

我正在使用的實際數據使用名稱而不是字母,但我顯然不想把它們放在這里。 但同樣,我的目標是創建一個新列,其中包含我想要的某些名稱的值。

謝謝!

這聽起來像是一個字典,將名稱映射到它們各自的有序 position 您想要在圖表中是 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM