pandas 重命名列中的所有值

siotufzp  于 2023-02-02  发布在  其他
关注(0)|答案(3)|浏览(137)

我有这个列表的列表= [['迷失的召唤师凯蒂',70],['铁缚',4000]]
我还有这个 Dataframe :

我希望找到一种通用方法,用前面列表中的用户名替换item_id integer

cetgtptt

cetgtptt1#

将列表的列表转换成一个字典,其中ID是键,然后在pandas.Series.map()中使用它来转换item_id列。

mapping = dict(map(reversed, list_of_lists))
df.item_id = df.item_id.map(mapping)
igsr9ssn

igsr9ssn2#

您可以从list创建dict,然后在创建的dict上使用pandas.Series.map

lst = [['Lost Summoner Kitty', 70], ['Ironbound', 4000]]
dct = {num: entry for entry, num in lst}
# dct -> {70: 'Lost Summoner Kitty', 4000: 'Ironbound'}

df['item_id'] = df['item_id'].map(dct)
4ioopgfo

4ioopgfo3#

您可以使用map

df['item_name'] = [dict([l[::-1] for l in lists]).get(i, None) 
                                 for i in df['item_id']]

输出:

print(df)
  steam_id  item_id            item_name
0      XXX       70  Lost Summoner Kitty
1      YYY     4000            Ironbound

相关问题