如何以最简单的方式替换多个版本?
这是我的数据:
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发布于 2018-05-28 07:56:00
你需要的不是映射而是replacing
df['Device'] = df['Device'].replace(f)
0 Asus
1 Xiaomi
2 Xiaomi
3 Asus
4 Samsung
Name: Device, dtype: object
发布于 2018-05-28 07:43:46
为什么不直接和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没有必要以这种方式进行任何映射或字典。
发布于 2018-05-28 07:42:12
如果需要,添加fillna或combine_first,dictionary和map
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 Samsunghttps://stackoverflow.com/questions/50561412
复制相似问题