创建dataframe
直接创建:pd.DataFrame()
import numpy as np
dates = pd.date_range('20160918',periods=6)
df =pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
print(dates)
print(df)
从外部导入数据
- 常用_csv格式:pd.read_csv(" 路径 " , encoding = "gbk" 或 "utf-8")
- excel格式:pd.read_excel(" 路径 ")
查看行列数/索引
- df.shape
- df.index 行索引(常用于迭代)
- df.columns 列索引
更改行列索引
- df.set_index('省份名称') 将'省份名称'列设为索引
- df.reset_index(drop=True) 将索引设为"0,1,2,3…",drop=True就是把原来索引列去掉
- df.columns=[ ]
- df.rename 详见http://t.csdn.cn/9PYlU
取出想要的行/列/子集
- df.head(n) 取前面n行
- df.tail(n) 取后面n行 (可用于累乘取特定想要的数据)
- df[['省份名称' , 'GDP']] 用列名选取想要的列(注意选取多列有两个方括号)
- df.loc[行标签 , 列标签]
- df.iloc[行索引 , 列索引]
- df[( 条件1 ) & ( 条件2 )] 按多个条件筛选
- df.列名
- df["列名”]
- df.query() #还不怎么会 详见http://t.csdn.cn/ZqPfe
排序
- df.sort_values(by="列名" , ascending=True升序)
- df.sort_values(by=["列名1","列名2"] , ascending=True升序)
统计汇总
- df.mean(axis = 1,skipna 是否忽略缺失值= False)
- df.describe() 计算汇总统计#均值,标准差,最小,最大值和主要分位数
- df.cumsum() 样本值得累计和
- df.groupby('列名') 分组计算
- df.groupby(['列名1','列名2']).count() 分组计数
- df.groupby(列名).apply(自定义函数) 自定义函数的参数为列表
- 对特定的列用自定义函数.apply(lambda x: 自定义函数(x['列名']))
- 列运算 df1['col'] + df2['col']
- 纵向合并 concat([df1 , df2]) 详见http://t.csdn.cn/OZLgE
修改
- df = df.drop('省份名称', axis=1) 删除列
- df = df.drop("2000") 删除行