美文网首页
Pandas 结构化数据(下)

Pandas 结构化数据(下)

作者: AlexDM | 来源:发表于2017-01-03 16:14 被阅读134次

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'])

相关文章

网友评论

      本文标题:Pandas 结构化数据(下)

      本文链接:https://www.haomeiwen.com/subject/ltlnvttx.html