、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都要有()



