pandas的一些

在具体谈及骚操作之前先捋一遍基本的统计特征函数

方法名函数功能所属库
sum()计算数据样本的综合(按照列计算)pandas
mean()计算数据样本的算术平均数pandas
var()计算样本的方差pandas
std()计算样本的标准差pandas
sample()计算样本的Spearman(Person)相关系数矩阵pandas
cov()计算样本的协方差矩阵pandas
skew样本值的偏度;偏度系数pandas
describe()给出样本的基本描述(比如均值、标准差等)pandas
kurt()样本值的峰度;峰度系数pandas
median()样本值的中位数pandas
quantile()样本4分位数 
import pandas as pd
df = pd.read_csv(r"C:\Users\lenovo\Desktop\HR.csv")
>>>

       satisfaction_level  last_evaluation  ...  department  salary
0                    0.38             0.53  ...       sales     low
1                    0.80             0.86  ...       sales  medium
2                    0.11             0.88  ...       sales  medium
3                    0.72             0.87  ...       sales     low
4                    0.37             0.52  ...       sales     low
5                    0.41             0.50  ...       sales     low
6                    0.10             0.77  ...       sales     low
7                    0.92             0.85  ...       sales     low
8                    0.89             1.00  ...       sales     low
9                    0.42             0.53  ...       sales     low
10                   0.45             0.54  ...       sales     low
11                   0.11             0.81  ...       sales     low
12                   0.84             0.92  ...       sales     low
13                   0.41             0.55  ...       sales     low
14                   0.36             0.56  ...       sales     low

首先是df.mean()

satisfaction_level         0.612839
last_evaluation           67.373732
number_project             3.802693
average_monthly_hours    201.041728
time_spend_company         3.498067
Work_accident              0.144581
left                       0.238235
promotion_last_5years      0.021264
dtype: float64

df["satisfaction_level"].mean()

0.6128393333333333

df.quantile(q=0.25)

satisfaction_level         0.44
last_evaluation            0.56
number_project             3.00
average_monthly_hours    156.00
time_spend_company         3.00
Work_accident              0.00
left                       0.00
promotion_last_5years      0.00
Name: 0.25, dtype: float64
df["satisfaction_level"].skew() # 偏态系数
Out[9]: -0.47643761717258093
df["satisfaction_level"].kurt() # 峰态系数
Out[10]: -0.6706959323886252
df.sample(n=10)  # 给df进行抽样10个
Out[11]: 
       satisfaction_level  last_evaluation  ...   department  salary
12624                0.38             0.50  ...        sales     low
12343                0.41             0.56  ...    technical  medium
12214                0.40             0.53  ...           IT     low
3607                 0.64             0.66  ...        sales  medium
11808                0.69             0.90  ...  product_mng     low
6604                 0.19             0.85  ...    technical     low
6471                 0.60             0.82  ...           IT     low
6447                 0.52             0.51  ...    technical    high
535                  0.37             0.56  ...        sales  medium
10989                0.17             0.55  ...        RandD     low
df.sample(frac=0.01)  # 给df进行抽样率为0.01
Out[12]: 
       satisfaction_level  last_evaluation  ...   department  salary
223                  0.87             0.90  ...           IT     low
9683                 0.56             0.83  ...           IT  medium
5586                 0.81             0.99  ...        sales  medium
12269                0.38             0.86  ...    technical  medium
208                  0.44             0.50  ...      support     low
1412                 0.46             0.46  ...    technical     low
11713                0.63             0.98  ...   management    high
10660                0.83             0.74  ...      support  medium
1757                 0.36             0.51  ...        sales     low
14994                0.40             0.57  ...      support     low
1238                 0.66             1.00  ...        sales  medium

基本方法就先演示这几个

骚操作一:

shift方法:

首先通过df.shift?方法来了解一下

Examples
--------
 df = pd.DataFrame({'Col1': [10, 20, 15, 30, 45],
                    'Col2': [13, 23, 18, 33, 48],
                    'Col3': [17, 27, 22, 37, 52]})
 df.shift(periods=3)
   Col1  Col2  Col3
0   NaN   NaN   NaN
1   NaN   NaN   NaN
2   NaN   NaN   NaN
3  10.0  13.0  17.0
4  20.0  23.0  27.0
 df.shift(periods=1, axis='columns')
   Col1  Col2  Col3
0   NaN  10.0  13.0
1   NaN  20.0  23.0
2   NaN  15.0  18.0
3   NaN  30.0  33.0
4   NaN  45.0  48.0
 df.shift(periods=3, fill_value=0)
   Col1  Col2  Col3
0     0     0     0
1     0     0     0
2     0     0     0
3    10    13    17
4    20    23    27
File:      c:\users\lenovo\appdata\roaming\python\python36\site-packages\pandas\core\frame.py
Type:      method

可以知道periods参数是用来控制移动的距离;axis是用来控制列移动还是行移动,fill_value是用来控制因为移动数据产生的NAN用什么来进行填充

可以看到数据是集体向下移动的

加上fill_value参数就会变成0了

如果需要用到隔行相减的情况就派上用场了

除了shift还有累计计算(cum)和滚动计算(pd.rolling)

Pandas累积统计特征函数
方法名函数功能所属库
cumsum()依次给出前1,2,3……n个数的和pandas
cumprod()依次给出前1,2,3……n个数的积pandas
cummax()依次给出前1,2,3……n个数的最大pandas
cummin()依次给出前1,2,3……n个数的最小pandas
Pandas累积统计特征函数
方法名函数功能所属库
rolling_sum()计算数据样本的总和(按列计算)Pandas
rolling_mean()数据样本的算术平均数Pandas
rolling_var()计算数据样本的方差Pandas
rolling_std()计算数据样本的标准差Pandas
rolling_corr()计算数据样本的Spearman(Pearson)相关系数矩阵Pandas
rolling_cov()计算数据样本的协方差矩阵Pandas
rolling_skew()样本值的偏度Pandas
rolling_kurt()样本值得峰度Pandas

其中,cum系列函数是作为DataFrame或者是Series对象的方法而出现的,因此命令格式为D.cumsum(),但是rolling系列是pandas的函数,并不是DataFrame或者Series对象的方法,因此他们的使用格式为pd.rolling_mean(D,k),意思为每K列计算一次平均值,滚动计算。

 

转载于:https://www.cnblogs.com/zhoulixiansen/p/10533286.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值