本文主要是介绍第七章:数据规整化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
说明:本文章为Python数据处理学习日志,记录内容为实现书本内容时遇到的错误以及一些与书本不一致的地方,一些简单操作则不再赘述。日志主要内容来自书本《利用Python进行数据分析》,Wes McKinney著,机械工业出版社。
这篇博文主要是为了补全python处理数据系列,基本上本章没有太多的问题,主要就是P202的数据作者并没有给出,手动编辑csv太麻烦,接下来介绍如何用代码将macrodata.csv转化成可用的数据。
data = pd.read_csv('macrodata.csv')temp_data = DataFrame(data,columns=['year','quarter','realgdp','infl','unemp'])temp_data[:2]
Out[105]: year quarter realgdp infl unemp
0 1959.0 1.0 2710.349 0.00 5.8
1 1959.0 2.0 2778.801 2.34 5.1for i in range(len(temp_data.index)):if int(temp_data[i:i+1].quarter) == 1:temp_data.loc[i,'date'] = datetime(temp_data[i:i+1].year,3,31)elif int(temp_data[i:i+1].quarter) ==2:temp_data.loc[i,'date'] = datetime(temp_data[i:i+1].year,6,30)elif int(temp_data[i:i+1].quarter) ==3:temp_data.loc[i,'date'] = datetime(temp_data[i:i+1].year,9,30)elif int(temp_data[i:i+1].quarter) ==4:temp_data.loc[i,'date'] = datetime(temp_data[i:i+1].year,12,31)temp_data[:2]
Out[107]: year quarter realgdp infl unemp date
0 1959.0 1.0 2710.349 0.00 5.8 1959-03-31
1 1959.0 2.0 2778.801 2.34 5.1 1959-06-30'''这一步如果看不清楚,可以拆开来一步一步看效果'''
temp_data = temp_data.drop(['year','quarter'],1).set_index('date').stack()temp_data[:10]
Out[109]:
date
1959-03-31 realgdp 2710.349infl 0.000unemp 5.800
1959-06-30 realgdp 2778.801infl 2.340unemp 5.100
1959-09-30 realgdp 2775.488infl 2.740unemp 5.300
1959-12-31 realgdp 2785.204
dtype: float64temp_data.to_csv('new.csv')ldata = pd.read_csv('new.csv',names=['date','item','value'])ldata[:10]
Out[112]: date item value
0 1959-03-31 realgdp 2710.349
1 1959-03-31 infl 0.000
2 1959-03-31 unemp 5.800
3 1959-06-30 realgdp 2778.801
4 1959-06-30 infl 2.340
5 1959-06-30 unemp 5.100
6 1959-09-30 realgdp 2775.488
7 1959-09-30 infl 2.740
8 1959-09-30 unemp 5.300
9 1959-12-31 realgdp 2785.204
这篇关于第七章:数据规整化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!