数据
需求:将Brands_rank列中的不同品牌名,单独列出来
观察数据:不同的品牌名,由横杆(-)隔开,第3行只有1个横杆(-)
为实现需求,可以将Brands_rank列拆为3列,或者将3行Brands_rank数据拆为8行。
# -*- coding:utf-8 -*-
import pandas as pd
import numpy as np
df
Type Brands_rank
0 Computer Mac-Dell-Lenovo
1 Phone Mac-XiaoMi-HuaWei
2 Pad Mac-HuaWei
一列拆多列
获取Type列
df_column = df.Type.to_frame()
print(df_column)
Type
0 Computer
1 Phone
2 Pad
基于Brands_rank列构造多列
方法一:当截取的内容长度和位置固定时,可直接使用字符串切片,本例中,以截取Brands_rank的Mac为例
df_column['Brands-First'] = df.Brands_rank.astype('str').str[0:3]
print(df_column)
Type Brands-First
0 Computer Mac
1 Phone Mac
2 Pad Mac
方法二:当截取的内容长度不固定时,如Brands_rank中横杆(-)的中间部分,字符串长度不一致,使用字符串分割函数split()