【Python資料分析與處理 實訓04】— 探索1960 - 2014美國犯罪資料(時間序列處理應用)
探索1960 - 2014美國犯罪資料資訊
對于下面的資料集進行簡單的一些資料的分析訓練
若需要源資料請私信~
1.将資料框命名為crime
crime = pd.read_csv('G:/Projects/pycharmeProject/大資料比賽/泰迪智能科技/data/US_Crime_Rates_1960_2014.csv',sep=",",index_col=0)
print(crime)
2.每一列(columns)的資料類型是什麼
print(crime.dtypes)
3.将Year資料類型轉換為datatime64
crime['Year'] = pd.to_datetime(crime['Year'])
print(crime.dtypes)
進一步優化
crime['Year'] = pd.to_datetime(crime['Year'],format="%Y")
4.将列Year設定為資料框的索引
crime.set_index('Year',inplace=True)
5.删除名為Total的列
crime.drop('Total',axis=1,inplace=True)
這部分容易出錯,參見本人部落格:KeyError: “[‘xxxx‘] not found in axis“
6.按照Year(每十年)對資料框進行分組并求和
print(crime.resample('10AS').sum())
這裡涉及時間資料的操作運用到了resample方法:在pandas裡對時序的頻率的調整稱之重新采樣,即從一個時頻調整為另一個時頻的操作。
參見本人部落格:Python----資料分析-pandas.時間序列大佬文章:Pandas的時間序列資料-resample重采樣pandas官方文檔:pandas.DataFrame.resample
7.何時是美國曆史上生存最危險的年代
# 計算人口增長率
print(crime['Population'].diff()) # 求取一階內插補點
print(crime['Population'].diff()[1:]) # 取出已知增長人數資料
print(crime['Population'].values[:-1]) # 取出60-13年人口資料
print(crime['Population'].diff()[1:]/crime['Population'].values[:-1]) # 計算人口增長率
print((crime['Population'].diff()[1:]/crime['Population'].values[:-1]).idxmin()) # 得出人口增長率最低的一年