数据分析入门--pandas

dataframe索引设置
2.3.1 修改行列索引值
data.index = stu

2.3.2 重设索引
df.reset_index() # 默认把索引的值变成一列数据,索引恢复默认索引
drop=True,删掉索引

2.3.3 以某列值设置为新的索引
df.set_index(‘列名’)

df.set_index([‘列名’, ‘列名1’])

year month sale
2012 1 1
2 67
3 89
4 67
5 67

2013 1
2
3
4
5
2014 1
2
3
4
5

dataframe切片索引
只能按照列名去切片

.loc[行索引的名字 , 列索引的名字]
.iloc[行位置下标,列位置下标]
.ix[] # 名字 位置下标 不建议使用

index
10
a
11
100
first
0

.ix[0:10 ,]

3 排序
.sort_values()
dataframe对象有 by= 指定按照哪列进行排序

.sort_index(ascending=True)

1 算术运算
+/-/*/ div

data[‘open’] + data[‘close’] # 按照index对应的进行运算

2 逻辑运算
data[“open”] > 23 # bool_series
data[bool_series]

data.query(“open<24 & open>23”)

.isin([‘志宏’, ‘火箭’]) # 产生bool_series

3 统计运算
df.describe()
max min mean
median 中位数 --> 由小到大排列之后中间两数的平均值
mode 众数 --> 出现次数最多的数

.idxmax .idxmin # 返回最大值/最小值的index名字索引

3.3 累计统计函数
02-24 这天的价格当作基准价格

4 自定义运算

df.apply(func, axis=0)

5.6 文件读取与存储
CSV(text)
pd.read_csv(filename)

df.to_csv(filename)
df.to_csv('test.csv')

HDF5(binary)
pd.read_hdf(filename)

df.to_hdf(filename, key='')  # 一个h5文件中可以存储多张表

JSON(text)
pd.read_json(filename, orient=‘records’, lines=False)

df.to_json(filename, orient='')

5.7 高级处理-缺失值处理
缺失值
NaN : not a number
标准的缺失值标记符,np.nan np.NaN
type: float
np.nan == np.nan # False

1 如何处理nan
判断是否有缺失值
pd.isnull(df) # nan:True 从false找True, np.any
pd.notnull(df) # nan: False, 从True找False, np.all

处理缺失值
  删掉:
    df.dropna(inplace=True)
  填充缺失值
    df[''].fillna(value)

2 缺失值非nan时,需要做替换
df.replace(to_replace=, value=, inplace=True)

5.8 高级处理-数据离散化

1.什么是数据的离散化
连续性的数据,变成离散型的数据

42
150~165, 165~180,180~195
矮、中、高

2.为什么要离散化
数据离散化技术可以用来减少给定连续属性值的个数

3.离散化的pandas实现
pd.qcut(data[’’], 10) # 等频分割,等频分箱

pd.cut(data[''], [-11, 0, 5, 12]) # 按照指定间距分割
pd.cut(data[''], 10)  # 等距分割


one-hot编码
  pandas 哑变量,热编码

  pd.get_dummies(data, prefix='')

5.9 高级处理-合并
pd.concat([df1, df2], axis=1) # 按照行列索引进行拼接

pd.merge(left, right, on=[’’], how=‘inner/outer/left/right’)

5.10 高级处理-交叉表与透视表
考察两列离散型数据之间的关系

考察两列连续型数据之间的关系:散点图

交叉表
数数字,数两列数据某对儿值共同出现的次数
pd.crosstab(tf[’’], tf[’’])

透视表
df.pivot_table([’’], index=[’’])

5.11 高级处理-分组与聚合
分别采用DataFrame 或者 Seriers 对其进行操作
df.groupby([‘col’]).mean()[’’]

df.groupby([‘col’, ‘col2’]).mean()[’’]

col.groupby([‘color’])[‘price1’].mean()
col[‘price1’].groupby(col[‘color’]).mean()
注意:知道两者之间的差异,Seriers 是先指定按照什么分组我们的数据

pandas中,抛开聚合谈分组,无意义

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值