python(16)-pandas-单类型统计-信息分类问题

1.情境描述: 提示信息,一条记录只属于一类 ,按类型统计信息
2.实现步骤:文件中,提示信息有3种类型,20万条记录。

 读文件->查看数据信息->统计分类->构造全0数组->遍历3次赋值,不是20万次->求和
3.知识点:
  1.查看数据信息 df.info() 默认读前5条 主要看缺失值
   2.建全0数组
   np.zeros((df.shape[0], len(cate_list)))
  3.对应位置赋值为1,循环3次而不是遍历 20万次
    zeros_df[cate][df["title"].str.contains(cate)] = 1


流程代码

def main():
    #1.读取 #路径是对的 ./默认路径下
    filePath="./data/info.csv"
    df=pd.read_csv(filePath)
    #2.查看数据信息 看是否有缺失值
    print(df.head())   #数据条数为20万,数据种类为3种
    print(df.info())
    #3.统计分类
    temp_list =df["title"].str.split(":").tolist()
    cate_list =list(set([i[0] for i in temp_list])) #得3种分类
    #4.构造全0数组
    zeros_df = pd.DataFrame(np.zeros((df.shape[0], len(cate_list))), columns=cate_list)
    #5.赋值 遍历3次(实例中是3种类型) 不是遍历20万条
    for cate in cate_list:
         zeros_df[cate][df["title"].str.contains(cate)] = 1

    print(zeros_df)  # [203909 rows x 3 columns]

    #6.求和
    sum_ret=zeros_df.sum(axis=0)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值