《利用python进行数据分析》 学习笔记

Series
pandas的数组是没有逗号的 ['a' 'b' 'c' 'd' 'e']

r=Series([1,3,5,7,9],index=['A','B','C','D','E'])
print r
print r.index
r.reindex(['B','C''D','E','A'])

重新按照index进行排序
print r[['A','D']] #需要用两个中括号 才能正确地引用你说需要的值
 
字典操作:
print ‘A' in r
返回的是True或者False
可以用字典直接生成 Series
dict={"Username":"Rocky","Sex":"Male","Country":"China","Langauge":"Chinese"}
t=Series(dict)
print t
t.isnull()
判断是否为空
Series 的index可以随时就修改
t.index = ["AAA","DDD","DD","DE"]


DataFrame
默认会给你0,1,2,3,4 的index和columns
创建方法:
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002],'pop': [1.5, 1.7, 3.6, 2.4, 2.9]}
df=pd.DataFrame(data)
print df
访问一整列的方法:
print df['year']
print df.year
修改整列 df[’year‘]= 2017
或者使用 Series 来赋值
为不存在的列赋值会创建出一个新列。关 键字del用于删除列
根据列 重新索引
col=["year','states','pop']
df.reindex(colunms=col)
这时会重新按照列进行索引。
当然也可以同时进行索引。

df[df>5]=0
将df中大于5的元素清零
用于行操作时,需要用ix,这也是一种重新索引的方法。
获取某一行:
df.irow(x)
获取某一列:
df.icol(x)
上面的x都是整数,按照实际的行列进行获取
修改某一个值:
df.ix[3, 'a'] = 88
排序:
sort_index() 按照字母表排序,或者 数字大小, 日期
如果想要按照列进行排列, sort_index(axis=1) 默认按照index 也就是行标进行排序。
按照某一列排序 sort_values(by="a"), 如果需要按照多列 就 使用 sort_values(by=['a','b']

文件读取与存储/数据库
pd.read_table(文件名,sep=",") 以,为分隔符读取数据。 如果文件没有标题栏,可以使用header=None来制定,就是columns的值为空。 或者手动制定一个 names=xxx
如果要制定index为某列,可以index_col=“xx”
skiprow 可以帮助跳过第几行。

合并操作:

合并列
pd.merge(df1,df2)
merge重复的的值。 默认做的是交集: inner, 并集是outer, pd.merge(df1,df2,how=outer)
df1.join(df2)
行合并:
df.append(df2[:2]) index 不会变,df的值也不变,返回的值才是append之后的值
pd.concat( [ df1, df2 ] )
index重新排序。 注意格式


排序 df.groupby("Weather") #按照某一列进行排序
weather_group=df.groupby("Weather")
返回一个列表元组: for name, group in weather_group:
weather_group.first() 返回每一组分组中第一行
weather_group.last() 返回第一组分组中的最后一行
多行排序: df.groupby(['A','B'])
记住数据是Series还是DataFrame的 !

从csv文件读入,设置index 用 pd.read_csv(filename, index_col="XXXXX")
或者new_df= df.set_index('XXXX')



利用python进行数据分析
PDF电子书完整版 百度网盘下载
http://pan.baidu.com/s/1pLm7hAb 
密码:pvi4



 

0 个评论

要回复文章请先登录注册