[英]Capitalize a string column in pandas
如何以最簡單的方式替換多個版本?
這是我的數據:
No Device
1 asus
2 Xiaomi
3 xiaomi
4 Asus
5 Samsung
我要做到:
No Device
1 Asus
2 Xiaomi
3 Xiaomi
4 Asus
5 Samsung
我所做的是:
f = {'xiaomi':'Xiaomi', 'asus':'Asus'}
df['Device'] = df['Device'].map(f)
但是結果是:
No Device
1 Asus
2 NaN
3 Xiaomi
4 NaN
5 NaN
為什么不只使用str.title
呢?
df['Device'] = df.Device.str.title()
df
No Device
0 1 Asus
1 2 Xiaomi
2 3 Xiaomi
3 4 Asus
4 5 Samsung
這樣就不需要任何映射或字典。
您需要的不是映射而是replacing
即
df['Device'] = df['Device'].replace(f)
0 Asus
1 Xiaomi
2 Xiaomi
3 Asus
4 Samsung
Name: Device, dtype: object
如果需要dictionary
和map
則添加fillna
或combine_first
:
df['Device'] = df['Device'].map(f).fillna(df['Device'])
要么:
df['Device'] = df['Device'].map(f).combine_first(df['Device'])
或者,如果只需要首字母大寫,則僅使用str.capitalize
:
print (df)
No Device
0 1 asus best
1 2 Xiaomi
2 3 xiaomi
3 4 Asus
4 5 Samsung
df['Device'] = df['Device'].str.capitalize()
print (df)
No Device
0 1 Asus best
1 2 Xiaomi
2 3 Xiaomi
3 4 Asus
4 5 Samsung
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.