python如何导入外部数据_Python 如何导入 txt 和 Excle格式的数据?

熟悉Python的同学应该都体会过Python绘图包matplotlib的强大,但是有些时候我们想可视化的数据是其他的外部格式的,比较常见的就是Excle表和txt文本,如何利用python将这两种格式的数据进行可视化呢,得力于Python各种花里胡哨的工具包,这一切都很容易实现。

首先以txt文档为例,我们尝试着用python处理下面形式的txt数据,只是一个简单的例子:

我们尝试将上面的txt导入到python中并绘制直方图,当然这个操作在excle里面也很容易完成,你只要输入一下神秘代码,代码不长,希望大家能静下心来仔细研究一下每一句的作用:

# -*- coding: utf-8 -*-

"""Created on Sun Mar 1 22:02:15 2020@author: Kangshifu"""

import matplotlib

import matplotlib.pyplot as plt

import numpy as np

fr = open('data_txt.txt',encoding='UTF-8')

lines = fr.readlines()

###存储每一行名字

retName = []

###存储每一行的数据

retData = []

###将txt数据分配到字典里

for line in lines:

###strip()用来忽略每一行结尾处的换行字符

items = line.strip().split(',')

###该行的第一个字符作为名称

retName.append(items[0])

###除了第一个元素以外的数据存到retData里面

retData.append([float(items[i]) for i in range(1, len(items))])

###柱状图的标题

labels=retName

###将字典转化为np的数组方便切片处理

data=np.array(retData)

data1=data[:,0]

data2=data[:,1]

data3=data[:,2]

###下面是绘制柱状图的基本操作

x = np.arange(len(labels)) # the label locations

width = 0.1 # the width of the bars

fig, ax = plt.subplots()

rects1 = ax.bar(x - width, data1, width, label='data1')

rects2 = ax.bar(x , data2, width, label='data2')

rects3 = ax.bar(x + width, data3, width, label='data3')

ax.set_xticks(x)

ax.set_xticklabels(labels)

如果你的txt里面没有中文的话,比如将我上面的txt文档中的中文删除(如下图所示),你可以直接使用numpy自带的文本导入,代码也放在下面,效果是和上面的一致:

import matplotlib

import matplotlib.pyplot as plt

import numpy as np

#####导入没有字符的txt(只包含数据)

f=open('data_txt.txt','rb')

data=np.loadtxt(f,delimiter=',')

data1=data[:,0]

data2=data[:,1]

data3=data[:,2]

###下面是绘制柱状图的基本操作

x = np.arange(len(data1)) # the label locations

width = 0.1 # the width of the bars

fig, ax = plt.subplots()

rects1 = ax.bar(x - width, data1, width, label='data1')

rects2 = ax.bar(x , data2, width, label='data2')

rects3 = ax.bar(x + width, data3, width, label='data3')

ax.set_xticks(x)

下面尝试将一个excle文件导入到python进行处理并绘图,下面是这个excle的部分截图:

你只要在你的python编译器里面输入以下代码就可以得到你想要的结果,前提是要安装xlrd,如果不知道怎么安装的话,直接在你的cmd黑色框框里面输入:pip install xlrd

import xlrd

import numpy as np

import matplotlib.pyplot as plt

####这个excle里面只有两列

wb = xlrd.open_workbook('data_test1.xlsx')

####用来存储excle里面的两列数据

x_data1=[]

y_data1=[]

####excle里面每一个格子称为一个cell,这里用三个循环每个sheet 中的每个cell的数据提取出来

####我的这个excle只有一个sheet

for s in wb.sheets():

print ('Sheet:',s.name)

#######由于第一行是各列的名称,所以这里跳过第一列,从第二列开始提取

for row in range(1,s.nrows):

print ('the row is:',row)

values = []

for col in range(s.ncols):

########cell(row,col).value用来提取row行 col列位置cell里面的数据

values.append(s.cell(row,col).value)

print (values)

#######x_data1存储第一列,y_data1存储第二列

x_data1.append(values[0])

y_data1.append(values[1])

######将字典转化为numpy数组,便于处理

x=np.array(x_data1)

y=np.array(y_data1)

#####绘图基本操作

fig, axs = plt.subplots(1, 1, sharey=True, tight_layout=True)

axs.plot(x, y,'-bo')

上面就是python导入外部数据的一些方法,当然这些只是我比较常用的,大家可以继续开发其他的方法,python是一个大宝库,只有你想不到的没有python做不到的,希望大家看完能点一下赞,让我知道我帮助了多少人(害羞 ),另外关注我会有更多惊喜等着你哟。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值