我正在嘗試同時轉換一些包含數字和字母的列。我想轉換為簡單的數值,例如 int。我不想只是隨機轉換,因為它們涉及 isbn。我希望能夠再次匹配。我想將匹配轉換如下。
d = {'id': [156972, 102154, 214717, 84897, 275220, 165759, 42099, 265749, 130474, 15822],
'isbn': ['2842630521', '037570745X','689710879','783547528','786014091','1561581747','553571095','451210220','034540288X','345832710X',]}
df = pd.DataFrame(data=d)
我想以這種方式轉變。
for id
2842630521 as 0
783547528 as 1
.
.
.
130474 as 9
15822 as 10
for isbn
2842630521 as 0
037570745X as 1 # alphabet involved
.
.
.
034540288X as 9
345832710X as 10
有沒有辦法做到這一點?
可選:我還想要一種方法來追溯isbn0列中的數字是否為 2842630521。
uj5u.com熱心網友回復:
利用:
#random shuffle order of rows
df1 = df.sample(frac=1)
#create mapping dictionary by id
a, b = pd.factorize(df1['id'])
d = dict(zip(b, a))
#map original column
df['id'] = df['id'].map(d)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525427.html
標籤:Python熊猫
上一篇:在Pandas中的左上角案例
