01
—
準備數(shù)據(jù)
為了方便練習(xí),這里直接借用隨機函數(shù)生成30個Excle表格,每個表格存放10行數(shù)據(jù)。
import pandas as pd
import numpy as np
import random
import datetime
import os
os.chdir('D:\Python\方知數(shù)據(jù)\data')
# 隨機數(shù)據(jù)準備
region = ['北京','上海', '廣州','武漢','南京','長沙','成都']
random.choice(region) # 隨機生成地區(qū)
product = ['A1','A2', 'A3','B1','C1','D1','D2']
random.choice(product) # 隨機生成產(chǎn)品編號
random.randrange(30) # 隨機生成銷售數(shù)量
# 生成30個Excle表格,每個表格10行數(shù)據(jù)
for i in range(20):
df = pd.DataFrame(columns= ['地區(qū)' ,'產(chǎn)品編號','銷量'])
for rows in range(10):
date = pd.to_datetime('2023-1-1') + datetime.timedelta(days=i)
date = date.strftime('%Y-%m-%d')
temp = pd.DataFrame( [[ random.choice(region), random.choice(product), random.randrange(20)]],columns=df.columns)
df = pd.concat([df,temp])
df.to_excel('銷售明細' + date + '.xlsx',index=False)
工作文件夾通過os.chdir()設(shè)置在'D:\Python\方知數(shù)據(jù)\data',在運行完上述代碼后生成的文件就在該文件夾內(nèi)。生成的其中一個Excel數(shù)據(jù)如下:
02
—
合并數(shù)據(jù)
通過for循環(huán)一一讀取os.listdir()獲取到工作目錄下的所有Excel表格數(shù)據(jù),再存入list內(nèi),最后通過pd.concat()縱向拼接list內(nèi)的全部數(shù)據(jù)。
# 新建空的列表,來裝所有的列表
df_list = []
# 循環(huán)讀取Excel
for i in os.listdir('D:\Python\方知數(shù)據(jù)\data'):
if i.split('.')[-1] == 'xlsx':
data = pd.read_excel(i)
# 放入list內(nèi)
df_list.append(data)
# 拼接全部 DataFrame
result = pd.concat(df_list,ignore_index=True)
result.shape
這樣數(shù)據(jù)就成功拼接了,每個表格10行數(shù)據(jù),30個表格數(shù)據(jù)拼成了1個300行的表格數(shù)據(jù)。 如果想使用代碼刪除剛生成的模擬數(shù)據(jù),可以使用os.remove()。
for i in os.listdir('D:\Python\方知數(shù)據(jù)\data'):
os.remove(i)
需要jupyter格式的源代碼,可以直接在后臺發(fā)送230621。