前幾天碰到一個問題,將EXCEL的一列分成多列,在一個單元格中供應商號和供應商名稱是用空格分開的。這個問題挺簡的,其實重點我是想說一下Python是如何實現的。
在處理EXCEL的問題上,我更是喜歡Python來處理,更標準化,更不易出錯,下面舉一下例子。
關於資料的合併:
終端型別 |
終端品牌 |
終端型號 |
合併資料 |
臺式微機 |
DELL |
9010 |
臺式微機 DELL 9010 |
臺式微機 |
LENOVO |
4500 |
臺式微機 LENOVO 4500 |
臺式微機 |
DELL |
9020 |
臺式微機 DELL 9020 |
臺式微機 |
DELL |
980 |
臺式微機 DELL 980 |
這是在EXCEL中實現的,就是在單元格中輸入公式:=A2 &" "&B2&" "&C2
同樣在EXCEL中分列可以透過資料-分列來實現,下表是分列後的結果:
合併資料 |
合併資料 |
||
臺式微機 DELL 9010 |
臺式微機 |
DELL |
9010 |
臺式微機 LENOVO 4500 |
臺式微機 |
LENOVO |
4500 |
臺式微機 DELL 9020 |
臺式微機 |
DELL |
9020 |
臺式微機 DELL 980 |
臺式微機 |
DELL |
980 |
下面在Python中實現上面的操作,結果同上述合併結果一致。
import pandas as pd
path=r'C:\Users\songzht\Desktop\Python 辦公自動化教學檔案\1. Python 辦公自動化之 如何分列和合並.xlsx'
df=pd.read_excel(path,sheet_name='Sheet1')
for i in range(len(df)):
df.loc[i,'合併資料']=" ".join([df.loc[i,'終端型別'],df.loc[i,'終端品牌'],str(df.loc[i,'終端型號'])])
print(df)
最後講一下如何用Python實現分列,原始資料如下,資料是有空格或其他間隔符分開的。
合併資料 |
臺式微機 DELL 9010 |
臺式微機 LENOVO 4500 |
臺式微機 DELL 9020 |
臺式微機 DELL 980 |
import pandas as pd
path=r'C:\Users\songzht\Desktop\Python 辦公自動化教學檔案\1. Python 辦公自動化之 如何分列和合並.xlsx'
df=pd.read_excel(path,sheet_name='Sheet2')
df['終端型別']=df['合併資料'].str.split(' ').str.get(0)
df['終端品牌']=df['合併資料'].str.split(' ').str.get(1)
df['終端型號']=df['合併資料'].str.split(' ').str.get(2)
最終顯示結果為:
合併資料 |
終端型別 |
終端品牌 |
終端型號 |
臺式微機 DELL 9010 |
臺式微機 |
DELL |
9010 |
臺式微機 LENOVO 4500 |
臺式微機 |
LENOVO |
4500 |
臺式微機 DELL 9020 |
臺式微機 |
DELL |
9020 |
臺式微機 DELL 980 |
臺式微機 |
DELL |
980 |
這只是一個很簡單的例子,有很多有意思並且功能強大的用法,我以後慢慢給大家介紹一下。永遠記住,只有多練才能用好。