簡體   English   中英

如何用單獨的字典值替換數據框列-python

[英]How to replace dataframe column with separate dict values - python

我的user_artist_plays數據user_artist_plays下面顯示了一個用戶列,但是為了進行統計計算,我必須將這些混合字符替換為僅int ID。

    users                                       artist  plays
0   00001411dc427966b17297bf4d69e7e193135d89    sting   12763
1   00001411dc427966b17297bf4d69e7e193135d89    stars   8192
2   fffe8c7f952d9b960a56ed4dcb40a415d924b224    cher    117
3   fffe8c7f952d9b960a56ed4dcb40a415d924b224    queen   117

上面顯示了僅兩個用戶的多個條目,如果我可以讓該列與單獨字典中具有現有鍵的任何條目進行匹配,則可以:

users = user_artist_plays['users'].unique()
user_dict = {ni: indi for indi, ni in enumerate(set(users))}
user_dict

{'068156fafd9c4237c174c648d3d484cbf509cb75': 0,
 '6deecfbc46a81e4faf398b2afd991be05ab78f10': 74205,
 '1e23333ff4f637420a8a38d467ccecfda064afb9': 1,
 '0b282cafc949efe4163b7946b7104957a18cf010': 2,
 'd1867cbda35e0d48e9a8390d9f5e079c9d99ea96': 3}

這是我嘗試換出int值的嘗試:

for k, v in user_dict.items():
        if user_artist_plays['users'].any(k):
            user_artist_plays['users'].replace(v)

它保留了users列的原始值...

看來您需要map

user_artist_plays['users'] = user_artist_plays['users'].map(user_dict)

factorize

user_artist_plays['users'] = pd.factorize(user_artist_plays['users'])[0]

暫無
暫無

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

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