《 Introduction to Data Science:A Python Approach to Concepts,Techniques and Application》第二章:pandas的数据处理初步
目录:
1.读取数据
2.选择数据
3.筛选数据
4.清洗数据
5.数据处理
6.排序
7.分组
8.绘图
相关要点
1.读取数据:
pd.read_csv(‘PycharmProjects/newcode/book_review/educ_figdp_1_Data.csv’#文件路径,na_value = ‘:’,usecols = [’’,’’,’’])
pd.read_excel() pd.read_hdf() pd.read_table() pd.read_clipboard()
a.head() a.tail() 前五行、后五行部分展示
2.选择数据
a[‘value’] a[10:20] a.ix[10:20,[‘time’,‘value’]
0 value1 10 time geo value
1 value2 11
3 value3 …
… 20
3.筛选数据
a[a[‘value’]>=5] != <=
4.清洗数据
a[a[‘value’].isnull()].head()
a.dropna(how = ‘‘any’’,subset = ‘‘value’’)
a.fillna(value = {‘value’ = 0} a.rename(index = {'china m m m m m mm mm ':‘China’})
5.数据处理
增加 a[‘valuenorm’] = a[‘value’]/a[‘value’].max()
a.append() a.drop()
count() discribe() prod() std() var() a[‘value’]/10000 a[‘value’].apply(np.sqrt)
6.排序
a.sort_values(by = ‘value’ ,ascending = False,inplace = True)
a.sort_index(axis = 0,ascending = True,inplace = True)
7.分组
a[[‘geo’,‘value’]].groupby(‘geo’).mean()
8.绘图
a.plot (kind = ‘bar/barh’, style = ‘r’‘y’‘b’,alpha = 4, title = ‘ABC’)
代码演示
**import pandas as pd
import matplotlib.pyplot as plt
edu = pd.read_csv('C:/Users/yangk/PycharmProjects/newcode/book_review/educ_figdp_1_Data.csv',na_values=':',\
usecols=['TIME','GEO','Value'])
filtered_data = edu[edu['TIME']>2005]
pivedu = pd.pivot_table(filtered_data, values = 'Value', index = ['GEO'],columns = ['TIME'])
pivedu = pivedu.drop(['Euro area (13 countries)','Euro area (15 countries)','Euro area (17 countries)','Euro area (18 countries)',
'European Union (25 countries)','European Union (27 countries)','European Union (28 countries)'],axis = 0)
pivedu = pivedu.rename(index = {'Germany (until 1990 former territory of the FRG)':'Germany'})
pivedu = pivedu.dropna()
pivedu.rank(ascending = False,method = 'first')
totalSum = pivedu.sum(axis = 1).sort_values(ascending = False)
totalSum.plot(kind = 'bar', style = 'b', alpha = 0.4,title = 'Total Values for Country')
my_colors = ['b','r','g','y','m','c']
ax = pivedu.plot(kind = 'barh',stacked = True, color = my_colors)
ax.legend(loc = 'center left', bbox_to_anchor = (1,.5))**
绘图
图片: