0
点赞
收藏
分享

微信扫一扫

python观察日志(part28)--数据的加载与存储

学习笔记,仅供参考,有错必究
参考文献:​​​编码问题:UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xb3 in position​​;

数据的加载与存储

文本文件的加载与存储

# 导入常用的包
import numpy as np
import matplotlib.pyplot as plt
# 支持多行输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = 'all' #默认为'last'

# windows环境下中文的正常显示(Linux中不够的,需要修改字体后重新加载)
plt.rcParams['font.sans-serif']=['SimHei']

#用来正常坐标轴的数字的负号
plt.rcParams['axes.unicode_minus']=False

读取csv文件

# 利用pandas读取csv文件
import pandas as pd
data = pd.read_csv('./data/test.csv', encoding='gb18030')
# 读取前5行
data.head()



城市

人均地区生产总值(元)

第三产业占GDP比重

人均地方财政收入

对外贸易系数

0

上海

78989

59.36

18135.913470

1.292077

1

南京市

67455

51.31

6899.471236

0.558394

2

无锡市

107365

41.30

8931.908085

0.615872

3

徐州市

25100

37.29

1716.189263

0.065778

4

常州市

70138

39.62

5999.911067

0.418762

# 跳过第2行读取(注意,第一行为行名)
data = pd.read_csv('./data/test.csv', encoding='gb18030', skiprows=[1])
data.head()



城市

人均地区生产总值(元)

第三产业占GDP比重

人均地方财政收入

对外贸易系数

0

南京市

67455

51.31

6899.471236

0.558394

1

无锡市

107365

41.30

8931.908085

0.615872

2

徐州市

25100

37.29

1716.189263

0.065778

3

常州市

70138

39.62

5999.911067

0.418762

4

苏州市

122565

39.41

11766.805100

1.821834

# 指定分隔符读取
data = pd.read_csv('./data/test.csv', encoding='gb18030', sep = ',')
data.head()



城市

人均地区生产总值(元)

第三产业占GDP比重

人均地方财政收入

对外贸易系数

0

上海

78989

59.36

18135.913470

1.292077

1

南京市

67455

51.31

6899.471236

0.558394

2

无锡市

107365

41.30

8931.908085

0.615872

3

徐州市

25100

37.29

1716.189263

0.065778

4

常州市

70138

39.62

5999.911067

0.418762

# 读取文件时指定列名
data = pd.read_csv('./data/test.csv', encoding='gb18030', names = ['city', 'a', 'b', 'c', 'd'])
data.head()



city

a

b

c

d

0

城市

人均地区生产总值(元)

第三产业占GDP比重

人均地方财政收入

对外贸易系数

1

上海

78989

59.36

18135.91347

1.292076869

2

南京市

67455

51.31

6899.471236

0.558393574

3

无锡市

107365

41.3

8931.908085

0.615871884

4

徐州市

25100

37.29

1716.189263

0.065778095

存储csv文件

# 使用to_csv函数存储csv文件
df = pd.DataFrame(np.array(range(12)).reshape((6, 2)), columns = ['A', 'B'])
df.to_csv('./output/test_output.csv')
df.to_csv('./output/test_output2.csv', '|')

除了读取csv文件以外,还可以通过read_json(),read_html等方式读取json,html等文件;to_json(),to_html()等方式写出json,html等文件.

Excel表格

读取Excel文件

# 利用pandas读取excel文件
# 方式1
data1 = pd.read_excel("./data/test_excel.xlsx", 'Sheet1')
# 方式2
excel = pd.ExcelFile("./data/test_excel.xlsx")
data2 = pd.read_excel(excel, "Sheet2")
print("data1: \n", data1)
print("data2: \n", data2)
data1: 
ID Name Age
0 1 Ada 19
1 2 Tim 20
2 3 Huang 21
3 4 Black 22
4 5 Jam 23
5 6 Pick 24
6 7 Julia 25
7 8 Kattle 26
data2:
ID Wage
0 1 15000
1 2 12000
2 3 13000
3 4 10000
4 5 3000
5 6 5000
6 7 8000
7 8 9000

写出Excel文件

data1 = data1[:5]
data1
data2 = data2[:6]
data2

# 创建新的Excel
excel = pd.DataFrame()
excel.to_excel("./output/test_output3.xlsx")

# 打开Excel,写入数据
writer = pd.ExcelWriter("./output/test_output3.xlsx")
data1.to_excel(writer, "Sheet1")
data2.to_excel(writer, "Sheet2")

# 最后一定要保存writer中的数据至Excel
writer.save()



ID

Name

Age

0

1

Ada

19

1

2

Tim

20

2

3

Huang

21

3

4

Black

22

4

5

Jam

23


ID

Wage

0

1

15000

1

2

12000

2

3

13000

3

4

10000

4

5

3000

5

6

5000


举报

相关推荐

0 条评论