Python pandas,pandas常用统计方法,求和sum,均值mean,最大值max,中位数median,标准差std

mean()平均值   median()中位数   max()最大值   min()最小值   sum()求和   std()标准差

Series类型独有的方法: argmax()最大值的位置   argmin()最小值的位置

 

demo.py(pandas常用统计函数):

# coding=utf-8
import numpy as np
import pandas as pd


# 创建DataFrame
df = pd.DataFrame(np.arange(12, 32).reshape((5, 4)), index=["a", "b", "c", "d", "e"], columns=["WW", "XX", "YY", "ZZ"])
print(df)
'''
   WW  XX  YY  ZZ
a  12  13  14  15
b  16  17  18  19
c  20  21  22  23
d  24  25  26  27
e  28  29  30  31
'''


# mean()平均值  median()中位数  max()最大值  min()最小值  sum()求和  std()标准差
print(df.mean())  # 每一列平均值 (Series类型)
'''
WW    20.0
XX    21.0
YY    22.0
ZZ    23.0
dtype: float64
'''

print(df["YY"].mean())  # 22.0  指定列的平均值

print(df["YY"])  # Series类型
YY_list = df["YY"].tolist()  # tolist()转换成list类型
print(YY_list)  # [14, 18, 22, 26, 30]
print(len(YY_list))  # 5
print(len(set(YY_list)))  # set集合可以去重

print(df["YY"].unique())  # [14 18 22 26 30]  unique()自动去重(ndarray类型)


print(df.max())  # 每一列的最大值 Series类型。  min()最小值
'''
WW    28
XX    29
YY    30
ZZ    31
dtype: int64
'''

# argmax()某一列最大值的位置  argmin()最小值的位置
print(df["YY"].argmax())  # e


 

demo.py(应用实例,字符串的离散化,根据电影类型统计电影的数量):

# coding=utf-8
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np

file_path = "./IMDB-Movie-Data.csv"

df = pd.read_csv(file_path)
# print(df["Genre"].head(3))
'''
0     Action,Adventure,Sci-Fi
1    Adventure,Mystery,Sci-Fi
2             Horror,Thriller
Name: Genre, dtype: object
'''

# 统计分类的列表
temp_list = df["Genre"].str.split(",").tolist()  #[[],[],[]]

genre_list = list(set([i for j in temp_list for i in j]))  # 两层for循环展开列表

# 构造全为0的数组
zeros_df = pd.DataFrame(np.zeros((df.shape[0],len(genre_list))),columns=genre_list)
# print(zeros_df)

# 给每个电影出现分类的位置赋值1
for i in range(df.shape[0]):
    #zeros_df.loc[0,["Sci-fi","Mucical"]] = 1
    zeros_df.loc[i,temp_list[i]] = 1

# print(zeros_df.head(3))

# 统计每个分类的电影的数量和
genre_count = zeros_df.sum(axis=0)
print(genre_count)
'''
Drama        513.0
Sci-Fi       120.0
Action       303.0
Comedy       279.0
Crime        150.0
Thriller     195.0
Fantasy      101.0
dtype: float64
'''

# 排序
genre_count = genre_count.sort_values()
_x = genre_count.index
_y = genre_count.values

#画图
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(_x)),_y,width=0.4,color="orange")
plt.xticks(range(len(_x)),_x)
plt.show()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值