python讀寫excel數據–pandas詳解

一、讀寫excel數據

利用pandas可以很方便的讀寫excel數據

1.1 讀:

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

1.2寫:

首先要創建數據框

# 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.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()

結果如下:

在這裡插入圖片描述

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: