python中pandas包学习笔记(1)

来源:互联网 发布:湄公河大案泰国 知乎 编辑:程序博客网 时间:2024/04/30 10:04

直接上源代码,英文基础好的,建议去官方网站学习:

http://pandas.pydata.org/pandas-docs/stable/10min.html

我的学习代码:

import pandas as pd
import numpy as np
import matplotlib as plt
s = pd.Series([1,3,5,np.nan,6,8])
dates = pd.date_range('20130101', periods=6)
dates
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
df
df2 = pd.DataFrame({ 'A' : 1.,
   ....:                      'B' : pd.Timestamp('20130102'),
   ....:                      'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
   ....:                      'D' : np.array([3] * 4,dtype='int32'),
   ....:                      'E' : pd.Categorical(["test","train","test","train"]),
   ....:                      'F' : 'foo' })
df2
df2.dtypes
#df2.<TAB> #仅仅用于ipython中
df.head()
df.tail()
df.head(n=2)
df.index
df.columns
df.values
df.describe()
###转换行列
df.T
###按照第一行升序排列
df.sort_index(axis=1, ascending=False)
###按照第二列升序排列
df.sort_values(by='B')
#按照第二列降序排列
df.sort_values(by='B',ascending=False)
#选择单个列形成序列,并对比两种代码,两种结果是一样的
df['A']
df.A
#使用[]选择相应的行,1:3代表的是1和2
df[1:3]
df['20130102':'20130104']
#获取第一行
df.loc[dates[0]]
#获取第一列
df.loc[:,'A']
#获取第一行,第一列数字,第二个速度快一些
df.loc[dates[0],'A']
df.at[dates[0],'A']
#获取第4行,python第一行为0
df.iloc[3]
#采用序号获得小矩阵
df.iloc[3:5,0:2]
#采用序号,获得制定数据
df.iloc[[1,2,4],[0,2]]
#只选定行,列都选
df.iloc[1:3,:]
#只选定列,行都要
df.iloc[:,1:3]
#获得第二行第二列数据,第二行是快速方法
df.iloc[1,1]
df.iat[1,1]
#根据条件筛选数据
df[df.A > 0]
#把小于0的数字变为na
 df[df > 0]
#判断是否含有某个数字
df2 = df.copy()
df2['E'] = ['one', 'one','two','three','four','three']
df2
df2[df2['E'].isin(['two','four'])]#获取2,4的
#添加新列
s1 = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102', periods=6))
df['F'] = s1
df
#修改df值-把第一行第二列数字变为0
 df.at[dates[0],'A'] = 0
df.iat[0,1] = 0
df
#把d列都修改成数字5
df.loc[:,'D'] = np.array([5] * len(df))
df
#把大于0的全部转换成负数
df2 = df.copy()
df2[df2 > 0] = -df2
df2
#处理缺失值
df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])
df1
df1.loc[dates[0]:dates[1],'E'] = 1
df1
#删除带na的行
df1.dropna(how='any')
#把na填充为其他数字
df1.fillna(value=5)
df1
#判断是否含有na值
pd.isnull(df1)
#求平均值--每列
df.mean()
#每行-平均值
df.mean(1)
df


0 0
原创粉丝点击