博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据分析-day06-pandas-dataFrame案例分析1(方法一):获取title字段中包含物流运输业名称作为分类,统计各个分类的条数
阅读量:4287 次
发布时间:2019-05-27

本文共 3247 字,大约阅读时间需要 10 分钟。

数据格式:

目的数据:

目的:获取title字段中包含物流运输业名称作为分类,统计各个分类的条数

# -*- coding: utf-8 -*-# @File    : pandas_dataframe_classs_sum_demo.py# @Date    :  2020-01-06 16:38# @Author  : admin'''获取title字段中包含物流运输业名称作为分类,统计各个分类的条数'''import pandas as pdfrom matplotlib import pyplot as pltimport numpy as  np;df=pd.read_csv("../../data/911.csv");df=df.head(10);print(df.head(5))#前5行的title列的数据#print(df[:5]["title"])###########################################################截取字符串,获取分类#################################print("##################step1:截取字符串,获取分类############:")jieque_array= df["title"].str.split(": ").tolist();distinct_list=list(set([m[0] for m in jieque_array]));print(jieque_array)print(distinct_list)###########################################################构建全0的矩阵#############################print("##################step2:构建全0的矩阵####################:");zeroes_array=pd.DataFrame(np.zeros((df.shape[0],len(distinct_list))),columns=distinct_list);print(zeroes_array)###########################################################修改赋值#############################print("##################step3:  修改赋值####################:");#方法一for cat in distinct_list:    print(cat)    #zeroes_array[cat] 遍历的是列,相当于zeroes_array['EMS'],    print(df["title"].str.contains(cat))  #boolean 索引    zeroes_array[cat][df["title"].str.contains(cat)]=1;#表达的意思是:构建的全0矩阵中的某列,df原数据的每一行,的title列包含这个列名称,则赋值为1print(zeroes_array)'''#方法二for m in range(df.shape[0]):    zeroes_array.loc[m,jieque_array[m][0]]=1    #m行的jieque_array[m][0]列,在jieque_array中存在,赋值为1print(zeroes_array)'''###########################################################按列即按类别求和#############################print("####################step4:按列即按类别求和####################:");df_sum=zeroes_array.sum(axis=0) #axis=0 按列print(df_sum)

结果:

        lat        lng  ...                        addr  e

0  40.297876 -75.581294  ...      REINDEER CT & DEAD END  1
1  40.258061 -75.264680  ...  BRIAR PATH & WHITEMARSH LN  1
2  40.121182 -75.351975  ...                    HAWS AVE  1
3  40.116153 -75.343513  ...          AIRY ST & SWEDE ST  1
4  40.251492 -75.603350  ...    CHERRYWOOD CT & DEAD END  1

[5 rows x 9 columns]

##################step1:截取字符串,获取分类############:
[['EMS', 'BACK PAINS/INJURY'], ['EMS', 'DIABETIC EMERGENCY'], ['Fire', 'GAS-ODOR/LEAK'], ['EMS', 'CARDIAC EMERGENCY'], ['EMS', 'DIZZINESS'], ['EMS', 'HEAD INJURY'], ['EMS', 'NAUSEA/VOMITING'], ['EMS', 'RESPIRATORY EMERGENCY'], ['EMS', 'SYNCOPAL EPISODE'], ['Traffic', 'VEHICLE ACCIDENT -']]
['Traffic', 'Fire', 'EMS']
##################step2:构建全0的矩阵####################:
   Traffic  Fire  EMS
0      0.0   0.0  0.0
1      0.0   0.0  0.0
2      0.0   0.0  0.0
3      0.0   0.0  0.0
4      0.0   0.0  0.0
5      0.0   0.0  0.0
6      0.0   0.0  0.0
7      0.0   0.0  0.0
8      0.0   0.0  0.0
9      0.0   0.0  0.0
##################step3:  修改赋值####################:
Traffic
0    False
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9     True
Name: title, dtype: bool
Fire
0    False
1    False
2     True
3    False
4    False
5    False
6    False
7    False
8    False
9    False
Name: title, dtype: bool
EMS
0     True
1     True
2    False
3     True
4     True
5     True
6     True
7     True
8     True
9    False
Name: title, dtype: bool
   Traffic  Fire  EMS
0      0.0   0.0  1.0
1      0.0   0.0  1.0
2      0.0   1.0  0.0
3      0.0   0.0  1.0
4      0.0   0.0  1.0
5      0.0   0.0  1.0
6      0.0   0.0  1.0
7      0.0   0.0  1.0
8      0.0   0.0  1.0
9      1.0   0.0  0.0
####################step4:按列即按类别求和####################:
Traffic    1.0
Fire       1.0
EMS        8.0
dtype: float64

转载地址:http://lxtgi.baihongyu.com/

你可能感兴趣的文章
python27与python35可以共存
查看>>
安装robotframework
查看>>
快捷创建ride桌面快捷方式
查看>>
robotframework教程
查看>>
robotframework打不开浏览器的解决办法比如 no open browser
查看>>
robotframework使用之RIDE的底部日志没显示怎么办?
查看>>
通过调用关键字来实现测试用例---重复利用百度搜索
查看>>
RobotFrameWork(二)Ride简单使用及快捷键
查看>>
测试大牛的博客地址
查看>>
Tomcat6.0的安装与配置
查看>>
测试套件edit里的名称含义
查看>>
工作区Run
查看>>
PyCharm找不到自己安装的module ImportError: No module named 。。。
查看>>
python的ConfigParser模块
查看>>
Python+Selenium中级篇之5-Python读取配置文件内容
查看>>
Python+Selenium练习篇之27-多窗口之间切换----修改后的
查看>>
Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用------修改后的
查看>>
Python+Selenium中级篇之7-Python中字符串切割操作--修改
查看>>
Python+Selenium中级篇之8-Python自定义封装一个简单的Log类---修改
查看>>
logging.getLogger(logger)
查看>>