dataframe 列拆分

# -*- 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

原文链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值