簡體   English   中英

在pandas中大寫字符串列

[英]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

​

如果需要dictionarymap則添加fillnacombine_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.

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