Python處理Excel表中單元格帶有換行的數(shù)據(jù)問題
問題樣式
在數(shù)據(jù)處理過程中常常會遇到這樣一個問題,在給出的Excel表中,有一列數(shù)據(jù)中每個單元格里面存在多行數(shù)據(jù),及多行換行數(shù)據(jù)。
如下圖所示:

每一個單元格中的數(shù)據(jù)如下:

實例問題
將上述類型的數(shù)據(jù)(文件3.0),可以發(fā)現(xiàn),文件3.0的第一個表中是m行1列數(shù)據(jù),先獲取每一行數(shù)據(jù),每一行的A列數(shù)據(jù)中都存有3列N行的數(shù)據(jù),將第一列作為縱坐標(biāo),第二列作為行坐標(biāo),進(jìn)行作圖,將會得到m個圖片。
實例實現(xiàn)代碼
import xlrd
from pylab import *
data1 = xlrd.open_workbook("./數(shù)據(jù)/3.0.xlsx")
table1 = data1.sheets()[0]
nrows1 = table1.nrows #行數(shù)
ncols1 = table1.ncols #列數(shù)
def plotLine(i,x,y):
colors1 = '#000000' #點的顏色 黑色
area = np.pi * 4**2 # 點面積
plt.scatter(x, y, s=area, c=colors1, alpha=0.4)
plt.savefig('./結(jié)果集/1.1.{}.png'.format(i))
plt.clf() #需要重新更新畫布,否則會出現(xiàn)同一張畫布上繪制多張圖片
for i in range(1,nrows1): #從第二行開始 因為第一行為標(biāo)題A
rowValues= table1.row_values(i) #某一行數(shù)據(jù)
lis = []
for item in rowValues:
s = item.replace("\r\n",",") #將換行符合換成逗號
s = s.split(',') #用逗號進(jìn)行拆分
s = [a for a in s if(len(str(a))!=0)] #去除空元素
num = len(s)
print(num)
for m in np.arange(0, num, 3):
comtent =(s[m],s[m+1],s[m+2])
# x1=[s[m],s[m+1],s[m+2]]
lis.append(comtent)
# res.append(x1)
x =[]
y =[]
# print(lis)
for j in range(0,len(lis)-1):
y.append(lis[j][0])
x.append(lis[j][1])
x = [ float(d) for d in x ] # 一定要將字符串類型轉(zhuǎn)換成數(shù)值類型
y = [ float(d) for d in y ] # 一定要將字符串類型轉(zhuǎn)換成數(shù)值類型
plotLine(i,x,y)實例結(jié)果

圖片1.1.0:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用apidoc管理RESTful風(fēng)格Flask項目接口文檔方法
下面小編就為大家分享一篇使用apidoc管理RESTful風(fēng)格Flask項目接口文檔方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Python操作json數(shù)據(jù)的一個簡單例子
這篇文章主要介紹了Python操作json數(shù)據(jù)的一個簡單例子,需要的朋友可以參考下2014-04-04

