Python处理Excel表中单元格带有换行的数据问题
更新时间:2023年06月21日 10:40:09 作者:狼少年,程序猿
这篇文章主要介绍了Python处理Excel表中单元格带有换行的数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
问题样式
在数据处理过程中常常会遇到这样一个问题,在给出的Excel表中,有一列数据中每个单元格里面存在多行数据,及多行换行数据。
如下图所示:

每一个单元格中的数据如下:

实例问题
将上述类型的数据(文件3.0),可以发现,文件3.0的第一个表中是m行1列数据,先获取每一行数据,每一行的A列数据中都存有3列N行的数据,将第一列作为纵坐标,第二列作为行坐标,进行作图,将会得到m个图片。
实例实现代码
import xlrd
from pylab import *
data1 = xlrd.open_workbook("./数据/3.0.xlsx")
table1 = data1.sheets()[0]
nrows1 = table1.nrows #行数
ncols1 = table1.ncols #列数
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('./结果集/1.1.{}.png'.format(i))
plt.clf() #需要重新更新画布,否则会出现同一张画布上绘制多张图片
for i in range(1,nrows1): #从第二行开始 因为第一行为标题A
rowValues= table1.row_values(i) #某一行数据
lis = []
for item in rowValues:
s = item.replace("\r\n",",") #将换行符合换成逗号
s = s.split(',') #用逗号进行拆分
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 ] # 一定要将字符串类型转换成数值类型
y = [ float(d) for d in y ] # 一定要将字符串类型转换成数值类型
plotLine(i,x,y)实例结果

图片1.1.0:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
这篇文章主要介绍了Python操作MySQL数据库的两种方式,结合实例形式分析了Python使用pymysql和pandas模块进行mysql数据库的连接、增删改查等操作相关实现技巧,需要的朋友可以参考下2019-03-03
Python对DataFrame中所有行数据进行比较的几种方法
在数据分析中,比较DataFrame数据框中的行是一项基本操作,可应用于多种场景,在本文中,我们将学习各种方法,将DataFrame中的行与每一行进行比较,直到所有行都被比较完,结果存储在一个列表中,需要的朋友可以参考下2024-12-12


最新评论