统计911不同类型的紧急情况的次数
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
file_path = "DataAnalysis/911.csv"
df = pd. read_csv( file_path)
temp_list = df[ "title" ] . str . split( ":" ) . tolist( )
cate_list = list ( set ( [ i[ 0 ] for i in temp_list] ) )
zero_df = pd. DataFrame( np. zeros( ( df. shape[ 0 ] , len ( cate_list) ) ) , columns= cate_list)
for cate in cate_list:
zero_df[ cate] [ df[ "title" ] . str . contains( cate) ] = 1
sum_ret = zero_df. sum ( axis= 0 )
统计911不同月份不同类型紧急电话的次数的变化情况
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd. read_csv( "DataAnalysis/911.csv" )
df[ "timeStamp" ] = pd. to_datetime( df[ "timeStamp" ] )
temp_list = df[ "title" ] . str . split( ":" ) . tolist( )
cate_list = [ i[ 0 ] for i in temp_list]
df[ "cate" ] = pd. DataFrame( np. array( cate_list) . reshape( ( df. shape[ 0 ] , 1 ) ) )
df. set_index( "timeStamp" , inplace= True )
plt. figure( figsize= ( 20 , 8 ) , dpi= 80 )
for group_name, group_data in df. groupby( by= "cate" ) :
count_by_month = group_data. resample( "M" ) . count( ) [ "title" ]
_x = count_by_month. index
_y = count_by_month. values
_x = [ i. strftime( "%Y/%m/" ) for i in _x]
plt. plot( range ( len ( _x) ) , _y, label= group_name)
plt. xticks( range ( len ( _x) ) , _x, rotation= 45 )
plt. legend( loc= "best" )
plt. show( )
统计PM2.5
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
file_path = "DataAnalysis/PM2.5/BeijingPM20100101_20151231.csv"
df = pd. read_csv( file_path)
period = pd. PeriodIndex( year= df[ "year" ] , month= df[ "month" ] , day= df[ "day" ] , hour= df[ "hour" ] , freq= "H" )
df[ "datetime" ] = period
df. set_index( "datetime" , inplace= True )
data = df. resample( "7D" ) . mean( )
data = df[ "PM_US Post" ] . dropna( )
data_china = df[ "PM_Dongsi" ] . dropna( )
_x = data. index
_x = [ i. strftime( "%Y%m%d" ) for i in _x]
_y = data. values
_x_china = [ i. strftime( "%Y%m%d" ) for i in data_china. index]
_y_china = data_china. values
plt. figure( figsize= ( 20 , 8 ) , dpi= 80 )
plt. plot( range ( 0 , len ( _x) , 10 ) , _y[ : : 10 ] , label= "US Post" )
plt. plot( range ( 0 , len ( _x_china) , 10 ) , _y_china[ : : 10 ] , label= "CN Post" )
plt. xticks( range ( 0 , len ( _x) , 10 ) , list ( _x) [ : : 10 ] , rotation= 45 )
plt. legend( loc= "best" )
plt. show( )