栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

panda统计分析

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

panda统计分析

、CSV(逗号分隔值)是一种纯文本文件格式,用于存储表格数据(例如电子表格或数据库)。

@pycharm下,文本文件的读取和写入:

fo = open("D:/pychram.code22.2/t.txt","w")
fo.write(
    "hello world"
)

文件路径“ 绝对路径或者相对路径:注意子文件用“/” ”#区别提行,无路径就当前目录下创建文件。

w:写入并覆盖原文件,无原文件则创建文件。

@创建csv文件写入

import csv


fo = open("t.csv","w",newline="")
score=[
    ['Name','Chinese','Maths','English'],['张三','88','87','85'],['李四','93','88','90'],
    ['王五','82','99','96'],
    ['周六','77','94','84'],
    ['徐七','80','94','76']
]

writer= csv.writer(fo)
writer.writerows(score)

#csv兼容性更强,xsl文件是微软下的。open 创建文件,score写入文件

注意:导入csv模块

以列表建立csv文件,newline防止每行的空行,无管代码列表的写法。

@csv文件的读取,import导入python提供的csv模块。


import csv
f = open("D:/pychram.code22.2/t.csv")#fo f ,要先关闭fo,养成随手关文件
reader = csv.reader(f)
print(reader) #返回die迭代器,每行读取的值作为列表返回

for row in reader:  #row :row英 [rəʊ , raʊ]n.一排/列/行
    print(row)
f.close()

结果

<_csv.reader object at 0x000001E7828B3820>
['Name', 'Chinese', 'Maths', 'English']
['张三', '88', '87', '85']
['李四', '93', '88', '90']
['王五', '82', '99', '96']
['周六', '77', '94', '84']
['徐七', '80', '94', '76']

@csv文件转换成DataFrame

import pandas as pd


csv_file = "t.csv"

csv_data = pd.read_csv(csv_file,encoding="gbk")

print(csv_data)

注意:read_csv的编码格式默认uft-8,需要显式注明gbk

pd.read_csv("filename")

结果:

  Name  Chinese  Maths  English
0   张三       88     87       85
1   李四       93     88       90
2   王五       82     99       96
3   周六       77     94       84
4   徐七       80     94       76

条件的筛选,单条件双条件。


pddataframe[(pddataframe['字典.key'] < 条件)&(pddtaframe['字典。key'] >= 条件)]

[['columns','columns']]  #列索引


注意多个条件要加括号后在&或|,以字典的方式查找key列,查看[某几列]

 

实例:

data = csv_data[(csv_data.Chinese >= 80)& (csv_data.English >= 85)]["Maths"]

print(data)

---------------------------------

0    87
1    88
2    99

 返回无仅确定的列,  无columns有index。

--------------------------------------------------------------------------------------------

不加查看某一列的返回结果:

data = csv_data[(csv_data.Chinese >= 80)& (csv_data.English >= 85)]

print(data)


-------------------------------


  Name  Chinese  Maths  English
0   张三       88     87       85
1   李四       93     88       90
2   王五       82     99       96

数据的排序

DataFrame.sort_values(by=[' ',' '],axis=0#默认列排序ascending=Flase#降序)axis=0,by = [‘列名1’,‘列名2’]

补:dataframe的添加列如图

datadegree = datascreen.sort_values(by=['Average'])

datadegree['姓名'] =["张三",'李四','王五']
---------------------------------------------------

   Chinese  Maths  English    Average  姓名
0       88     87       85  86.666667  张三
1       93     88       90  90.333333  李四
2       82     99       96  92.333333  王五

@dataframe数据的保存csv文件

Dataframe.to_csv("filename")

@柱状图

import matplotlib.pyplot as plt

y = [86.66667,90.33333,92.33333]
x = ['张三','李四','王五']
plt.bar(x,y,align="center",tick_label=["1","2","3"])
plt.show()

导入matplotlib.pyplot 模块

align:对齐方式 left right center

tick_label 柱形设置名称#但不能设置成“x”

@xlsx文件的读取

import pandas as pd   #下载pip "openpyxl"

df = pd.read_excel('yourfilename')
              #filename的构成name.file类型

print(df)      #打印dataframe,只会显示前5列后五列

print(df.head())    #打印前5列,或者head(n)列
================================================

       姓名   奶茶   可乐  烧仙草      班级
0     赵国强    1    2    3  会计2004
1     王新栋   89  132   54  会计2004
2     刘丞渝   25    0   14  会计2005
3      敬馨  245  138  312  会计2003
4     董晓满  217   57   45  会计2001
..    ...  ...  ...  ...     ...
163   何玉莹  128  178    7  会计2004
164   唐子怡   90    2    2  会计2004
165   张宇晨  152   60  186  会计2005
166   别思云  185  100  280  会计2003
167  白玛曲西    5   35   16  会计2003

[168 rows x 5 columns]


          姓名   奶茶   可乐  烧仙草      班级
0        赵国强    1    2    3  会计2004
1        王新栋   89  132   54  会计2004
2        刘丞渝   25    0   14  会计2005
3         敬馨  245  138  312  会计2003
4        董晓满  217   57   45  会计2001
5        苏楠堰  102  128   45  会计2002
6  阿尔祖古丽·马木提  193   25  221  会计2001
7       扎西纳磋   21  179   11  会计2002
8       泽郎木初  261   72  212  会计2003
9        贾国华  279   75  191  会计2002

打开csv文件雷同  #openpyxl包

import pandas as pd

df = pd.read_csv('nba.csv')

print(df)#打印前后5行,中间用省略表示

print(df.head(n)) #打印前n行




数据的分组

DataFrame["","",""].groupby(by='')  , 挑选列,by按照‘ ’中的排列

dfgroup = df[['奶茶','班级']].groupby(by='班级')

print(dfgroup)    #输出汇总对象,显示内存地址


dfgrou = dfgroup.mean().head()

print('各班奶茶消费量n',dfgrou)


===============================================================================


______________________________________________________________________
各班奶茶消费量#代码的n
                 奶茶
班级                
会计2001  113.030303
会计2002   96.515152
会计2003  105.666667
会计2004  122.657143
会计2005  109.205882

@groupby.mean().head()前五组的每组的均值。

dfgrou = dfgroup.mean().head()

print('各班奶茶消费量n',dfgrou)


===============================================

各班奶茶消费量
                 奶茶
班级                
会计2001  113.030303
会计2002   96.515152
会计2003  105.666667
会计2004  122.657143
会计2005  109.205882

groupby的常用的描述性统计方法

dfgroup_cola_C = dfgroup_cola.count()各组样本数量

dfgroup_cola_S = dfgroup_cola.std()每组方差

dfgroup_cola_X = dfgroup_cola.max()每组最大值

dfgroup_cola_I = dfgroup_cola.min()每组最小值

b = dfgroup_cola_All.median()每组的众数

注意:max head min std都要有()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918616.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号