簡體   English   中英

根據字典在數據框中創建新列

[英]Create a new column in data frame from a dict

我有一個熊貓df:

     a   b  c
0   'k'  2  4
1   'l'  3  7
2   'm'  0  -3
3   'n'  4  4

我有一個字典:{'k':'kilo','l':'lima','m':'mike','n':'十一月'}

如何在df中跨字典的那些鍵創建新列:

     a   b  c    new
0   'k'  2  4   'kilo'
1   'l'  3  7   'lima'
2   'm'  0  -3  'mike'
3   'n'  4  4   'november'

謝謝。

只需調用map並傳遞dict,這將對您的dict中的值執行一系列值的查找,這是矢量化的,並且比循環執行要快得多:

In [26]:

t = {'k': 'kilo', 'l': 'lima', 'm': 'mike', 'n': 'november'}
df['new'] = df['a'].map(t)
df
Out[26]:
   a  b  c       new
0  k  2  4      kilo
1  l  3  7      lima
2  m  0 -3      mike
3  n  4  4  november

我注意到,在您的數據中,您的數據周圍帶有引號,在這種情況下,上述操作將無效,因為您的字典鍵只是一個字符,因此您還需要為鍵定義帶引號的字典:

In [28]:

t = {"'k'": 'kilo', "'l'": 'lima', "'m'": 'mike', "'n'": 'november'}
df['new'] = df['a'].map(t)
df
Out[28]:
     a  b  c       new
0  'k'  2  4      kilo
1  'l'  3  7      lima
2  'm'  0 -3      mike
3  'n'  4  4  november

但是,如果不需要引號,我將刪除它們:

In [30]:

df['a'] = df['a'].str.replace("'", '')
df['a']
Out[30]:
0    k
1    l
2    m
3    n
Name: a, dtype: object

暫無
暫無

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

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