# -*- 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
需求:将Brands_rank列中的不同品牌名,单独列出来
观察数据:不同的品牌名,由横杆(-)隔开,第3行只有1个横杆(-)
为实现需求,可以将Brands_rank列拆为3列,或者将3行Brands_rank数据拆为8行。
基于Brands_rank列构造多列
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
df_column['Brands-Second'] = df.Brands_rank.apply(lambda x: x.split('-')[1])
print(df_column)
Type Brands-First Brands-Second
0 Computer Mac Dell
1 Phone Mac XiaoMi
2 Pad Mac HuaWei
df_column['Brands-Third'] = df.Brands_rank.apply(lambda x: x.split('-')[2] if x.count('-') >= 2 else np.nan)
print(df_column)
Type Brands-First Brands-Second Brands-Third
0 Computer Mac Dell Lenovo
1 Phone Mac XiaoMi HuaWei
2 Pad Mac HuaWei NaN