import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from numpy import nan as NA
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

读取csv

# pd.read_csv() 默认 逗号为分隔符 ,默认首行作为 columnsName
pd.read_csv('data/ex1.csv')
a    b   c   d   message
0   1   2   3   4   hello
1   5   6   7   8   world
2   9   10  11  12  foo
# pd..read_table()也可以读取,但是要指定分隔符参数sep=''
pd.read_table('data/ex1.csv',sep=',')
a    b   c   d   message
0   1   2   3   4   hello
1   5   6   7   8   world
2   9   10  11  12  foo
# 读取没有明显列名称的文件,不需要让首行作为列,用参数header=None
df2=pd.read_csv('data/ex2.csv',header=None)
df2
0    1   2   3   4
0   1   2   3   4   hello
1   5   6   7   8   world
2   9   10  11  12  foo
# 自d义列名称读取 参数names=[]
# names给几列,就会从最后向前读几列数据,剩下的都是index
# 超出就是nan
df3=pd.read_csv('data/ex2.csv',names=['aa','bb','cc','dd','message','nn'])
df3
aa   bb  cc  dd  message nn
0   1   2   3   4   hello   NaN
1   5   6   7   8   world   NaN
2   9   10  11  12  foo NaN
# 设置行索引 index_col='某个列name'
df4=pd.read_csv('data/ex2.csv',names=['aa','bb','cc','dd','message'],index_col='message')
df4
aa   bb  cc  dd
message
hello   1   2   3   4
world   5   6   7   8
foo 9   10  11  12
# 多列的值作为行索引
df5=pd.read_csv('data/csv_mindex.csv',index_col=['key1','key2'])
df5
value1   value2
key1    key2
one a   1   2
b   3   4
c   5   6
d   7   8
two a   9   10
b   11  12
c   13  14
d   15  16
# 读取不规则的分隔符数据,使用分隔符sep=''
# 使用正则表达式做分隔符,不需要导入re,直接写正则字符串
# \s+
df6=pd.read_csv('data/ex3.txt',sep='\s+')
df6
A    B   C
aaa -0.264438   -1.026059   -0.619500
bbb 0.927272    0.302904    -0.032399
ccc -0.264273   -0.386314   -0.217601
ddd -0.871858   -0.348382   1.100491
# 使用参数skiprows=[] 跳过一些行
df7=pd.read_csv('data/ex4.csv',skiprows=[0,2,3])
df7
a    b   c   d   message
0   1   2   3   4   hello
1   5   6   7   8   world
2   9   10  11  12  foo
# comment='#',指定#开头的注释,不用读取
pd.read_csv('data/ex4.csv',comment='#')
a    b   c   d   message
0   1   2   3   4   hello
1   5   6   7   8   world
2   9   10  11  12  foo
# 需要读取xxx值为nan,参数na_values=[],空值与NA字符默认是nan了
df8=pd.read_csv('data/ex5.csv',na_values=[1,2,'world'])
df8
something    a   b   c   d   message
0   one NaN NaN 3.0 4   NaN
1   two 5.0 6.0 NaN 8   NaN
2   three   9.0 10.0    11.0    12  foo
3   foo NaN NaN 11.0    12  two
# 指定不同列的不同数据为nan
# 用字典匹配,某个列的一个值或多个值
nans={'something':'two','message':['foo','world']}
df9=pd.read_csv('data/ex5.csv',na_values=nans)
df9
something    a   b   c   d   message
0   one 1   2   3.0 4   NaN
1   NaN 5   6   NaN 8   NaN
2   three   9   10  11.0    12  NaN
3   foo 1   2   11.0    12  two

写入csv

# 模拟创建一个成绩表,语文,数学,英语。各科成绩有重复。
names = '尺,寸,人,下,匕,卜,之,田,丫,乃,贝,井,工,几,女,巨,爪,火,了,方,木,中,寸,石,户,友,夫,不,可,主,又,丑,巾,口,电,门,术,儿,羊,丁,心,天,化,气,正,页,兄,伏,大,计'.split(',')
df10 = DataFrame({'语文':np.random.randint(90,100,50),'数学':np.random.randint(80,100,50),'英语':np.random.randint(60,100,50),'化学':np.random.randint(60,100,50),'物理':np.random.randint(60,100,50),'生物':np.random.randint(60,100,50),'政治':np.random.randint(60,100,50),'历史':np.random.randint(60,100,50),'地理':np.random.randint(60,100,50)},index = [np.random.choice(list('赵钱孙李周吴郑王'))+names.pop(np.random.randint(0,len(names))) for i in range(50)]
)
df10
语文   数学  英语  化学  物理  生物  政治  历史  地理
赵大  97  90  68  86  73  94  70  70  72
孙兄  91  99  86  89  68  96  70  82  60
钱术  95  87  87  67  99  88  85  65  95
吴羊  92  98  94  64  96  82  65  85  69
王女  91  84  84  88  92  75  82  97  91
王卜  94  89  90  99  95  99  67  82  82
王可  94  90  76  68  93  82  93  99  83
钱巾  97  85  92  81  71  85  90  60  65
李丁  90  94  86  71  90  98  60  87  75
吴丫  91  82  70  70  86  68  61  94  99
吴丑  91  97  78  79  82  95  83  80  92
钱火  97  97  72  99  66  67  80  80  73
王石  96  83  69  66  90  60  86  93  92
李人  91  95  60  96  99  94  69  64  89
郑正  90  84  82  62  67  82  88  71  65
王乃  93  96  60  79  86  95  89  61  65
李寸  94  91  62  71  77  88  61  94  87
郑之  96  97  96  74  70  70  72  78  73
钱口  96  80  98  69  70  66  73  70  69
孙寸  96  81  70  97  74  92  64  94  87
吴儿  98  85  71  96  72  83  61  97  98
李木  94  82  69  71  88  92  93  92  76
赵主  95  80  83  80  63  94  76  67  75
钱巨  93  96  98  72  80  84  86  98  96
郑电  99  95  63  97  98  92  60  90  79
赵工  99  86  60  83  86  97  80  98  80
李方  91  83  85  75  76  85  74  87  76
李门  90  89  64  76  75  89  75  76  72
李几  96  82  70  88  79  96  60  85  61
赵夫  94  94  68  98  95  85  65  98  63
吴井  92  89  86  79  78  68  98  78  73
郑天  91  85  97  84  64  93  90  97  93
孙计  96  84  74  91  85  64  69  64  66
郑尺  99  84  93  88  99  87  76  80  85
孙友  98  95  75  85  94  89  69  74  82
郑中  96  81  88  66  68  71  88  83  63
赵页  98  97  63  66  71  98  97  63  60
郑户  91  88  68  73  76  81  87  87  89
王了  95  83  64  94  89  71  96  85  76
赵爪  92  92  88  83  81  98  81  97  63
吴又  99  99  71  61  90  60  65  74  77
钱化  93  92  63  82  86  82  88  96  88
吴不  94  83  75  90  71  91  84  99  83
吴伏  91  84  66  93  62  88  78  81  68
王贝  92  93  75  86  70  84  84  84  64
李气  97  99  72  60  69  68  67  74  75
李田  91  90  84  71  79  80  91  65  66
李下  98  81  65  92  72  65  72  64  77
李匕  90  82  96  99  87  88  88  64  95
李心  99  97  87  72  71  63  98  75  78
# 保存,行列索引都存进去了
df10.to_csv('成绩.csv',encoding='utf-8')
# index=False 不要行索引
df10.to_csv('成绩1.csv',index=False)
# header=False 不要行索引
df10.to_csv('成绩2.csv',header=False)
# na_rep='' 将nan换成xx进行存储,默认是空
df10.iloc[0,3]=NA
df10.to_csv('成绩3.csv',na_rep='空')
# 预览存储效果
import sys
# 以竖线为分隔符的预览效果
df10.to_csv(sys.stdout,sep='|',na_rep='空空')
|语文|数学|英语|化学|物理|生物|政治|历史|地理
赵大|97|90|68|空空|73|94|70|70|72
孙兄|91|99|86|89.0|68|96|70|82|60
钱术|95|87|87|67.0|99|88|85|65|95
吴羊|92|98|94|64.0|96|82|65|85|69
王女|91|84|84|88.0|92|75|82|97|91
王卜|94|89|90|99.0|95|99|67|82|82
王可|94|90|76|68.0|93|82|93|99|83
钱巾|97|85|92|81.0|71|85|90|60|65
李丁|90|94|86|71.0|90|98|60|87|75
吴丫|91|82|70|70.0|86|68|61|94|99
吴丑|91|97|78|79.0|82|95|83|80|92
钱火|97|97|72|99.0|66|67|80|80|73
王石|96|83|69|66.0|90|60|86|93|92
李人|91|95|60|96.0|99|94|69|64|89
郑正|90|84|82|62.0|67|82|88|71|65
王乃|93|96|60|79.0|86|95|89|61|65
李寸|94|91|62|71.0|77|88|61|94|87
郑之|96|97|96|74.0|70|70|72|78|73
钱口|96|80|98|69.0|70|66|73|70|69
孙寸|96|81|70|97.0|74|92|64|94|87
吴儿|98|85|71|96.0|72|83|61|97|98
李木|94|82|69|71.0|88|92|93|92|76
赵主|95|80|83|80.0|63|94|76|67|75
钱巨|93|96|98|72.0|80|84|86|98|96
郑电|99|95|63|97.0|98|92|60|90|79
赵工|99|86|60|83.0|86|97|80|98|80
李方|91|83|85|75.0|76|85|74|87|76
李门|90|89|64|76.0|75|89|75|76|72
李几|96|82|70|88.0|79|96|60|85|61
赵夫|94|94|68|98.0|95|85|65|98|63
吴井|92|89|86|79.0|78|68|98|78|73
郑天|91|85|97|84.0|64|93|90|97|93
孙计|96|84|74|91.0|85|64|69|64|66
郑尺|99|84|93|88.0|99|87|76|80|85
孙友|98|95|75|85.0|94|89|69|74|82
郑中|96|81|88|66.0|68|71|88|83|63
赵页|98|97|63|66.0|71|98|97|63|60
郑户|91|88|68|73.0|76|81|87|87|89
王了|95|83|64|94.0|89|71|96|85|76
赵爪|92|92|88|83.0|81|98|81|97|63
吴又|99|99|71|61.0|90|60|65|74|77
钱化|93|92|63|82.0|86|82|88|96|88
吴不|94|83|75|90.0|71|91|84|99|83
吴伏|91|84|66|93.0|62|88|78|81|68
王贝|92|93|75|86.0|70|84|84|84|64
李气|97|99|72|60.0|69|68|67|74|75
李田|91|90|84|71.0|79|80|91|65|66
李下|98|81|65|92.0|72|65|72|64|77
李匕|90|82|96|99.0|87|88|88|64|95
李心|99|97|87|72.0|71|63|98|75|78
print(123,file=open('123.txt','w'))
# 读取我们自己存储的成绩csv,人名以及行索引
s1=pd.read_csv('成绩.csv',index_col='Unnamed: 0')
s1
Unnamed: 0   语文  数学  英语  化学  物理  生物  政治  历史  地理
0   赵大  97  90  68  86  73  94  70  70  72
1   孙兄  91  99  86  89  68  96  70  82  60
2   钱术  95  87  87  67  99  88  85  65  95
3   吴羊  92  98  94  64  96  82  65  85  69
4   王女  91  84  84  88  92  75  82  97  91
5   王卜  94  89  90  99  95  99  67  82  82
6   王可  94  90  76  68  93  82  93  99  83
7   钱巾  97  85  92  81  71  85  90  60  65
8   李丁  90  94  86  71  90  98  60  87  75
9   吴丫  91  82  70  70  86  68  61  94  99
10  吴丑  91  97  78  79  82  95  83  80  92
11  钱火  97  97  72  99  66  67  80  80  73
12  王石  96  83  69  66  90  60  86  93  92
13  李人  91  95  60  96  99  94  69  64  89
14  郑正  90  84  82  62  67  82  88  71  65
15  王乃  93  96  60  79  86  95  89  61  65
16  李寸  94  91  62  71  77  88  61  94  87
17  郑之  96  97  96  74  70  70  72  78  73
18  钱口  96  80  98  69  70  66  73  70  69
19  孙寸  96  81  70  97  74  92  64  94  87
20  吴儿  98  85  71  96  72  83  61  97  98
21  李木  94  82  69  71  88  92  93  92  76
22  赵主  95  80  83  80  63  94  76  67  75
23  钱巨  93  96  98  72  80  84  86  98  96
24  郑电  99  95  63  97  98  92  60  90  79
25  赵工  99  86  60  83  86  97  80  98  80
26  李方  91  83  85  75  76  85  74  87  76
27  李门  90  89  64  76  75  89  75  76  72
28  李几  96  82  70  88  79  96  60  85  61
29  赵夫  94  94  68  98  95  85  65  98  63
30  吴井  92  89  86  79  78  68  98  78  73
31  郑天  91  85  97  84  64  93  90  97  93
32  孙计  96  84  74  91  85  64  69  64  66
33  郑尺  99  84  93  88  99  87  76  80  85
34  孙友  98  95  75  85  94  89  69  74  82
35  郑中  96  81  88  66  68  71  88  83  63
36  赵页  98  97  63  66  71  98  97  63  60
37  郑户  91  88  68  73  76  81  87  87  89
38  王了  95  83  64  94  89  71  96  85  76
39  赵爪  92  92  88  83  81  98  81  97  63
40  吴又  99  99  71  61  90  60  65  74  77
41  钱化  93  92  63  82  86  82  88  96  88
42  吴不  94  83  75  90  71  91  84  99  83
43  吴伏  91  84  66  93  62  88  78  81  68
44  王贝  92  93  75  86  70  84  84  84  64
45  李气  97  99  72  60  69  68  67  74  75
46  李田  91  90  84  71  79  80  91  65  66
47  李下  98  81  65  92  72  65  72  64  77
48  李匕  90  82  96  99  87  88  88  64  95
49  李心  99  97  87  72  71  63  98  75  78

excel

# 存储 前提需要安装 openpyxl
s1.to_excel('成绩.xlsx')
s1.to_excel('成绩1.xlsx',startrow=1,encoding='utf-8')
# 读取excel,参数读取csv ,多列个sheet_name
pd.read_excel('成绩.xlsx')
Unnamed: 0   Unnamed: 0.1    语文  数学  英语  化学  物理  生物  政治  历史  地理
0   0   赵大  97  90  68  86  73  94  70  70  72
1   1   孙兄  91  99  86  89  68  96  70  82  60
2   2   钱术  95  87  87  67  99  88  85  65  95
3   3   吴羊  92  98  94  64  96  82  65  85  69
4   4   王女  91  84  84  88  92  75  82  97  91
5   5   王卜  94  89  90  99  95  99  67  82  82
6   6   王可  94  90  76  68  93  82  93  99  83
7   7   钱巾  97  85  92  81  71  85  90  60  65
8   8   李丁  90  94  86  71  90  98  60  87  75
9   9   吴丫  91  82  70  70  86  68  61  94  99
10  10  吴丑  91  97  78  79  82  95  83  80  92
11  11  钱火  97  97  72  99  66  67  80  80  73
12  12  王石  96  83  69  66  90  60  86  93  92
13  13  李人  91  95  60  96  99  94  69  64  89
14  14  郑正  90  84  82  62  67  82  88  71  65
15  15  王乃  93  96  60  79  86  95  89  61  65
16  16  李寸  94  91  62  71  77  88  61  94  87
17  17  郑之  96  97  96  74  70  70  72  78  73
18  18  钱口  96  80  98  69  70  66  73  70  69
19  19  孙寸  96  81  70  97  74  92  64  94  87
20  20  吴儿  98  85  71  96  72  83  61  97  98
21  21  李木  94  82  69  71  88  92  93  92  76
22  22  赵主  95  80  83  80  63  94  76  67  75
23  23  钱巨  93  96  98  72  80  84  86  98  96
24  24  郑电  99  95  63  97  98  92  60  90  79
25  25  赵工  99  86  60  83  86  97  80  98  80
26  26  李方  91  83  85  75  76  85  74  87  76
27  27  李门  90  89  64  76  75  89  75  76  72
28  28  李几  96  82  70  88  79  96  60  85  61
29  29  赵夫  94  94  68  98  95  85  65  98  63
30  30  吴井  92  89  86  79  78  68  98  78  73
31  31  郑天  91  85  97  84  64  93  90  97  93
32  32  孙计  96  84  74  91  85  64  69  64  66
33  33  郑尺  99  84  93  88  99  87  76  80  85
34  34  孙友  98  95  75  85  94  89  69  74  82
35  35  郑中  96  81  88  66  68  71  88  83  63
36  36  赵页  98  97  63  66  71  98  97  63  60
37  37  郑户  91  88  68  73  76  81  87  87  89
38  38  王了  95  83  64  94  89  71  96  85  76
39  39  赵爪  92  92  88  83  81  98  81  97  63
40  40  吴又  99  99  71  61  90  60  65  74  77
41  41  钱化  93  92  63  82  86  82  88  96  88
42  42  吴不  94  83  75  90  71  91  84  99  83
43  43  吴伏  91  84  66  93  62  88  78  81  68
44  44  王贝  92  93  75  86  70  84  84  84  64
45  45  李气  97  99  72  60  69  68  67  74  75
46  46  李田  91  90  84  71  79  80  91  65  66
47  47  李下  98  81  65  92  72  65  72  64  77
48  48  李匕  90  82  96  99  87  88  88  64  95
49  49  李心  99  97  87  72  71  63  98  75  78

12.pandas 读取与写入文件相关推荐

  1. go语言逐行读取和写入文件

    前言 前面一篇博客讲到nodejs使用readline逐行读取和写入文件 今天使用go语言实现从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中. tb_pa ...

  2. python读取写入文件_Python读取和写入文件

    1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 1234567890 2345678901 3456789012 实现代码: with open('t ...

  3. pandas读取多个文件内容为dataframe、并合并为一个dataframe、pandas创建仅有列标签而内容为空的dataframe

    pandas读取多个文件内容为dataframe.并合并为一个dataframe.pandas创建仅有列标签而内容为空的dataframe 目录

  4. sublime python3中读取和写入文件时如何解决编码问题

    sublime python3中读取和写入文件时如何解决编码问题 参考文章: (1)sublime python3中读取和写入文件时如何解决编码问题 (2)https://www.cnblogs.co ...

  5. java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题

    读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常 ...

  6. Flutter进阶—读取与写入文件

    Flutter使用path_provider插件读取与写入文件,path_provider插件提供了一种平台无关的方法来访问设备文件系统上常用的位置.该类目前支持访问两个文件系统位置: 临时目录:系统 ...

  7. 读取和写入文件的最简单方法

    本文翻译自:Easiest way to read from and write to files There are a lot of different ways to read and writ ...

  8. pandas玩转excel-> (2)如何利用pandas读取excel数据文件

    pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...

  9. nodejs:fs (内置模块)读取和写入文件

    node fs (内置模块)读取和写入文件 const fs = require("fs"); //异步读取文件 fs.readFile("data.txt", ...

最新文章

  1. C++中的 istringstream
  2. 详解这场图片分类赛baseline,赢取官方人才认证+奖金
  3. 《Redis官方文档》用Redis构建分布式锁
  4. cmd应用基础 扫盲教程
  5. python按条件拆分列表元素_如何通过在python中拆分列表元素来创建列表?
  6. find查找所有php,linux中的find命令—查找文件名
  7. 前端学习总结——CSS布局方式之传统布局
  8. 日期格式化为yyyymmdd_Excel小技巧——如何将多行日期快速转换为数字文本
  9. Linux基础笔记1
  10. 触控事件MotionEvent
  11. k8s上部署java应用(activiti)实践
  12. 【PMP认证考试之个人总结】第 3 章 项目整合管理
  13. 关于 笔记本换掉光驱加装全新SSD以及win10系统无损迁移到SSD 详细教程
  14. linux文件管理ppt,Linux操作系统_文件管理2.ppt
  15. 面向未来的大数据核心技术都有什么?
  16. 解决VMware虚拟机宿主机与虚拟机通讯慢
  17. 一文读懂javascript深拷贝与浅拷贝
  18. 什么相片可以两张弄成一张_在PS内如何将两张照片合成一张
  19. php不能撤销,word2010突然无法撤销怎么解决
  20. (附源码)php柘城县农产品销售网站 毕业设计 020832

热门文章

  1. Julia中从Git时出现超时问题的解决方法---(例如:安装GR、Rmath一直超时)
  2. st-link v2怎么连接_固件升级:BOOX Nova\Note\Max2电纸书V2.1.1版固件发布
  3. 平面设计【PS】汉堡寿司横幅PSD分层模版素材
  4. JQuery Validate(1)---电话号码与邮箱验证
  5. 怎么去搭建聚合支付系统比较划算
  6. 恩兔NS-1刷ARMBIAN教程
  7. 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
  8. 2023轻薄投影仪首选:极米Z6X Pro入手超值!
  9. 初中级程序员进阶高级程序员,必须要了解的设计模式(45种设计模式)
  10. BeanPostProcessor妙用(转载)