python读写excel数据--pandas

1读写excel数据

利用pandas可以很方便的读写excel数据

1.1 读:

data_in = pd.read_excel('M2FENZISHI.xlsx')

1.1 写:

首先要创建数据框

# example
df = pd.DataFrame({'A':[0,1,2]})
writer = pd.ExcelWriter('test.xlsx') #name of excel file
df.to_excel(writer, sheet_name='Sheet1') # write
writer.save()   # save

2举例

2.1 要求

这个例子稍微有点复杂,只看读和写的部分就可以了。
例子要实现的目标为:有一个excel文件,如下:
在这里插入图片描述
现在要将里面的化学符号中数字和字母分开,得到如下结果
在这里插入图片描述

2.2 实现

由于化学符号里面有数字和字母,要提取数字或者字母首先想到的是正则表达式re模块。
在读取时由于我们已经将第一列命名data,因此pandas可以直接只读这一列的提名。
读取数字可以使用re.compile实现,如:
在这里插入图片描述

下面是完整实现的代码

import numpy as np 
import re 
import pandas as pd 

data_in = pd.read_excel('M2FENZISHI.xlsx')['data'] #load data
print(data_in.shape)
length = len(data_in)    # length
pattern = re.compile(r'\d+') # find number
num_out = []

for i in range(length):
    temp = pattern.findall(data_in[i]) # find number
    int_num = list(map(int,temp))
    num_out.append(int_num)

num_out = np.array(num_out)
print(num_out.shape)

# writer data to excel
df = pd.DataFrame({'C': num_out[:, 0], 'H': num_out[:, 1], 'O': num_out[:, 2],
                   'N': num_out[:, 3], 'P': num_out[:, 4], 'S': num_out[:, 5]})

writer = pd.ExcelWriter('test.xlsx') # name of the file
df.to_excel(writer, sheet_name='Sheet1')

writer.save()

结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值