pandas随笔

Series类似于一维数组,他是由一维数据(各种numpy数据类型)以及与之相关的数据标签(即索引)组成
索引可以由index参数组成
object = Series([4, 7, -5, 3], index = ['d', 'b', 'a', 'c'])
Numpy数组运算都会保留索引与值之间的链接
np.exp(object)
可以通过字典来创建Series
a = {0:a, 1:b, 2:c}
object = Series(a)
排序
obj.sort_index() 参数axis = 0/1 acsending =false (降序) by=['a', 'b']
汇总统计
df.sum()案列统计 df.sum(axis = 1)按行统计
value_counts用于计算一个Series各个值得频率
缺失值处理
1 .dropna 返回一个非空数据和其索引值 默认丢弃缺失值得行。丢弃列用参数axis = 1
2. 填充缺失数据 fillna
层次化索引
能在轴上拥有多个(两个以上)的索引级别,能以低纬度数据处理高纬度数据。
data = Series(np.random.randn(10),
				index = [['a', 'a' ,'a', 'b','b'],
						[1, 2, 3, 4, 5, 6]])
层次化索引在数据从塑造和基于分组(透视表)的操作中很重要
data.unstack()
各个层可以指定名字
data.index.names = ['key1', 'key2']
重排分级顺序
sortlevel根据单个级别中的值对数据进行排序
Dataframe中set_index 会将多个列索引转化为行索引

数据库风格的DataFrame合并
数据集的合并或连接是通过一个或多个键值连接的
pd.merge(f1, f2) 参数on指明以哪个键值连接,好像不能合并多张表
merge默认是inner建的交集 
outer取的是建的并集
left 左连接
right右连接
pd.join用于合并多个带有相同的或相似索引的DataFrame对象,而不管他们有没有重叠列
pd.concat([s1, s2, s3])参数axis = 1为列
重塑层次化索引
stack:将数据的列转为行
unstack:将数据的行转位列
pivoted = ldata.pivot('date', 'item', 'value')(前两个索引分别作用行和列索引的列名,最后参数是填充的列名)
检测过滤异常值
data[np.abs(data) > 3] = 0
绘图
s = Series(np.random.randn(10).cumsum(), index = np.arange(0, 100, 10))
DataFrame会在plot方法在subplot中位各列绘制一条直线,并自动创建图例
df = DataFrame(np.random.randn(10, 4).cumsum(0),
				columns=['A', 'B', 'C', 'D'],
				index = np.arange(0, 100, 10))
柱状图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.rand(6, 4),
                  index= ['one', 'two', 'three', 'four', 'five', 'six'],
                  columns=pd.Index(['A', 'B', 'C', 'D'], name = 'pandas'))
print(df)
df.plot(kind = 'bar')
plt.show()
以每行为x轴,列为柱状图分布显示

Groupby技术
拆分-应用-合并
pandas中的数据会通过一个或多个建分为多组,拆分操作在特定的轴上进行
然后将一个函数应用在各个分组上产生一个新值,最后合并结果
df = DataFrame({'key1':['a', 'b', 'a'],
				'key2':['one', 'two', 'one'],
				'data1':[np.random.randn(5)]})
grouped = df['data1'].groupby(df['key1'])
计算均值
grouped.mean()
groupby对象支持迭代(分组名和数据块)
使用自己的聚合函数
def peak_to_peak(arr):
	return arr.max() - arr.min()
grouped.agg(peak_to_peak)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值