@nemos
2017-05-06T02:38:51.000000Z
字数 2256
阅读 832
ml
import pandas as pd
# 读取
df = pd.read_csv('xxx.csv')
df = pd.read_json('xxx.json')
# 查看数据统计信息
df.describe()
# 查看数据前几行
df.head()
# 类型类信息快速查看
titanic["Embarked"].unique() # 返回不同类型
titanic["Embarked"].value_counts() # 显示不同类型及其个数
# 非数值列转换
titanic.loc[titanic['Sex']=='male','Sex'] = 1
# 缺失值填充
titanic['Embarked'] = titanic['Embarked'].fillna('S')
titanic['Embarked'].dropna() # 丢弃
# 分组
gp = titanic['Age'].groupby(titanic['Sex'])
dict(list(gp))['male']
pd.DataFrame(data=, index=, columns=) #数据集,索引,列名
# 左边的为index,上边的为columns
df = pd.DataFrame({'A' : [4,5], 'B' : [10,20]}, )
df.to_csv('xxx.csv')
df.info #数据的数值信息
df.tail() #倒数
df.index #返回索引,不可修改
df.columns #返回列名
df.values #返回数据
df.sum(axis=) #返回大小默认为列
fd.df.count() #非nan值数量
df[]
df[row1: row2] #行连续索引
df['index1', 'index5'] #行名称连续索引
df.loc[index[0]] #index值为index[0]的数据行
df.loc[1:3] #行连续名称索引,左右都是闭区间
df.loc[[1,3]] #行离散名称索引
df.iloc[1,3] #行连续位置索引
df['col'] #单列名称索引
df.col #同上
df[['col1', 'col2']] #列离散名称索引
df[[0, 1, 2]] #列位置离散索引
df[list(range(5))] #列连续位置索引
# 逗号分割行列操作
df.ix[['row1', 'row2'], ['col1', 'col2']] #
df.loc[:,['col1','col2']] #块离散名称索引
df.loc['20161111':'20161212', ['A', 'B']] #x块索引
df.iloc[3:5,0:2] #块连续位置索引
df.iloc[[1,2,4],[0,2]] #块离散位置索引
df[(df.A > 0) and (df.B<0)] #条件筛选
df[df['col'].isin(['ele1','ele2'])] #in条件筛选
df['col'] = 给列赋值可以为数值,series等
#列不存在则创建
del df['col'] #删除列
new_df = df.drop('xxx', axis=) #删除行或列由axis指定
df.dropna(how='any') #删除所有值包含nan的行
df.copy() #返回拷贝
pd.merge(df1, df2, on='col') #以col为准合并
df.append(s, ignore_index=True) #追加一个series到df上
df.apply(func,axis=) #将函数作用于行或列
df.apply(func) #元素级操作
df.fillna(value=0) #填充nan的值
pd.isnull(df) #判断
df.replace(to_replace='?', value=np.nan) #将?替换为np.nan
df.mean(axis=0) #对每列求平均
df.mean(1) #对每行求平均
df.str.lower() #字符操作
pd.concat(dflist) #连接
df.groupby('col') #
df1 + df2 #在不重叠的地方会产生NaN值
df1.add(df2, fill_value=0) #指定值填充不重叠的地方
# df与s的操作会在行上形成广播, 不存在形成并集
df1.add(s, axis) #列传播要用函数指定axis
df.reindex(index=, colums=, fill_value=, method=)
#重新指定索引,默认缺少值,指定方法
df.sort_index(axis=1, ascending=False) #按索引排列
df.sort_values(by='B') #按一列的值排列
df.rank(axis=) #排名
df.T #转置
s = pd.Series([1, np.nan, 6], index=['a', 'b'], 'c')
#index默认为int64
>>> s
a 1.0
b NaN
c 6.0
dtype: float64
s.name #series 名
s.index.name #index名
s['a']
s[['a', 'b']]
s[s > 0] #条件
不作特殊说明都是直接直接操作
obj * 2
np.exp(s)
# 看成字典
'b' in s #-> True
s.index = [] #index可以直接修改
s.map() #函数操作
s.order() #排序
s.rank(method=) #返回一个排名
十分钟入门pandas
cookbook
Python数据处理:Pandas模块的 12 种实用技巧