Python自学入门(一):环境安装
Python自学入门(二):数据类型和运算符
Python自学入门(三):数据类型详解
Python自学入门(四):流程控制
Python自学入门(五):函数和模块
Python自学入门(六):Pandas之数据结构
Python自学入门(七):Pandas之文件操作
#数据描述
data.describe()
函数 | 作用 | 函数 | 作用 |
---|---|---|---|
sum() | 求和 | min() | 最小值 |
media() | 中位数 | max() | 最大值 |
mean() | 平均数 | mode() | 众数 |
abs() | 绝对值 | prod() | 乘积 |
std() | 标准差 | var() | 方差 |
idxmax() | 最大值的索引 | idxmin() | 最小值的索引 |
cumsum() | 计算前n个数的和 | cummax() | 计算前n个数的最大值 |
cummin() | 计算前n个数的最小值 | cumprod() | 计算前n个数乘积 |
# max min median等
data.max(0) #0是按列计算 默认按列计算
data.idxmax() #idxmin()
#每一列最大值-最小值
def myfunc(x):return x.max()-x.min()#选两列数据
data[['open','close']].apply(myfunc,axis=0)
空值可能在数据中是缺失值,也可能使用符号代替,如问号,省略号等。读取数据,一般情况下,空值在DataFrame中显示NaN
import pandas
import numpy as np
data=pandas.read_csv("./data/NaN_data.csv")
data
#判断是否为null,如果该单元格是空值,则显示True(表格形式)
pandas.notnull(data)
#利用numpy判断是否具有空值,表格中包含一个False就是False
np.all(pandas.notnull(data))pandas.isnull(data) #和notnull相反#替换缺失值 取均值填充
data['tradecount'].fillna(data['tradecount'].mean(),inplace=True)
data2=pandas.read_csv("./data/NaN_data.csv")
data2.dropna() #直接删除缺失值
对于非NaN的空值,比如问号,需要替换掉对应的占位符
data3=pandas.read_csv("./data/Null_data.csv")
data3=data3.replace(to_replace='?',value=np.nan) #替换成NaN
nba=pandas.read_csv("./data/nba.csv")
nba.head()
weight = nba['Weight']
# 自动分10组
weight_qcut=pandas.qcut(weight,10)
weight_qcut
weight_qcut.value_counts()
# 指定分组区间
bins = [160,180,200,220,240,260,280]
hcut = pandas.cut(weight,bins)
#统计每个区间有多少
hcut.value_counts()
# one-hot编码(独热编码)
dummies=pandas.get_dummies(hcut)
dummies
#直接合并
pandas.concat([nba,dummies],axis=1) #axis 1行 0 列
表连接,根据一定条件,把两个表中的数据合并到一起,关联的数据合并到一行
left=pandas.read_csv('./data/table1.csv')
right=pandas.read_csv('./data/table2.csv')
result1=pandas.merge(left,right,how='inner',on=['key'])
result2=pandas.merge(left,right,how='left',on=['key'])
result3=pandas.merge(left,right,how='right',on=['key'])
result4=pandas.merge(left,right,how='outer',on=['key'])
交叉表查询是将来源于某个表中的字段进行分组,一组列在交叉表左侧,一组列在交叉表上部,并在交叉表行与列交叉处显示表中某个字段的各种计算值。
import pandas
import numpy
import matplotlib.pyplot as plt
data=pandas.read_csv("./data/stock_day.csv")
data=data.set_index('date')
#将日期是星期几提取出来
date=pandas.to_datetime(data.index).weekday
data['week']=date #加入到数据集中
data['rise']=numpy.where(data['close']>data['open'],1,0) #计算收盘比开盘价高的
count=pandas.crosstab(data['week'],data['rise']) #交叉表
计算比例
sum=count.sum(axis=1).astype(numpy.float32)
pro=count.div(sum,axis=0)
数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。
#直接使用透视表,省略之前的计算
data.pivot_table(['rise'],index='week')
data=pandas.read_excel("./data/group_data.xlsx")
data.head()
data.groupby(['color'])['price1'].max()
data.groupby(['color'],as_index=False)['price1'].max()
上一篇:李强出席东盟-中国-海合会峰会
下一篇:中钞科信算法岗面经