df = pd.DataFrame(np.random.randn(6,4), index=dates,columns=list('ABCD'))
向下错2位
s = pd.Series([1,3,5,np.nan,6,8], index=dates).shift(2)
按索引进行运算
df.sub(s, axis='index')
函数的应用
df.apply(np.cumsum) #累加
df.apply(lambda x: x.max() - x.min())
频数统计
s = pd.Series(np.random.randint(0, 7, size=10))
s.value_counts()
字符处理:
s.str.lower() # 转换为小写
数据合并 SQL风格
pd.merge(left, right, on='key')
追加记录
df.append(s, ignore_index=True) 如果忽略ignore_index,则会同时添加index列
**分组常常意味着可能包含以下的几种的操作中一个或多个
依据一些标准分离数据
对组单独地应用函数
将结果合并到一个数据结构中**
df.groupby('A').sum()
df.groupby(['A','B']).sum()
透视表
pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])
转换成 Categoricals 类型
df["grade"] = df["raw_grade"].astype("category")
重命名分类
df["grade"].cat.categories = ["very good", "good", "very bad"]
对分类进行重排序,同时加入新的分类。
df["grade"] = df["grade"].cat.set_categories(["very bad", "bad", "medium", "good", "very good"])
排序
df.sort("grade")
按类别分组统计个数
df.groupby("grade").size()
保存到 csv 文件
df.to_csv('foo.csv')
从 csv 文件读取数据
pd.read_csv('foo.csv')
保存到 excel 文件
df.to_excel('foo.xlsx', sheet_name='Sheet1')
读取 excel 文件
pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
网友评论