日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

python實(shí)現(xiàn)excel轉(zhuǎn)置問(wèn)題詳解_python

作者:Vergil_Zsh ? 更新時(shí)間: 2022-11-17 編程語(yǔ)言

excel轉(zhuǎn)置分為兩種情況,一個(gè)是較為簡(jiǎn)單的只需要行轉(zhuǎn)列,列轉(zhuǎn)行

最簡(jiǎn)單的轉(zhuǎn)置,利用pandas里面的轉(zhuǎn)置**.T**函數(shù)

代碼如下:

import pandas as pd

data = pd.read_excel('testT.xlsx')
print('源數(shù)據(jù): ',data)
print('==========================')
data = data.T
print('轉(zhuǎn)置之后: ', data)

將轉(zhuǎn)置之后的數(shù)據(jù)輸入到excel中:

data.to_excel('轉(zhuǎn)置完成后.xlsx',header=False)

如果不添加header=False

利用pandas進(jìn)行簡(jiǎn)單的轉(zhuǎn)置就算是完成了
二 較為復(fù)雜的轉(zhuǎn)置
源數(shù)據(jù):

轉(zhuǎn)置之后:

將這四列列名轉(zhuǎn)變成同一列中的Type中,然后添加一列Amount,將值放進(jìn)去
觀察可知道year、month、month_en是固定列

import pandas as pd

data = pd.read_excel('testT.xlsx')
# 確定最后所需要的列名
new_columns = ['year', 'month', 'month_en', 'Type', 'Amount']
# 獲取固定列的值并轉(zhuǎn)換為values
fixed_values = data.iloc[0:,0:3].values.tolist()
# 獲取轉(zhuǎn)置的列名
need_T_columns = data.columns.tolist()[3:]
# 獲取需要轉(zhuǎn)置的值
need_T_values = data.iloc[0:,3:].values.tolist()

list1 = []
listAll = []
for i in range(len(fixed_values)):
	a = fixed_values[i]
	for j in range(len(need_T_columns)):
		list1 += a
		list1.append(need_T_columns[j])
		list1.append(need_T_values[i][j])
		listAll.append(list1)
		list1 = []

data = pd.DataFrame(listAll, columns=new_columns)
print(data)

取出來(lái)的fixed_values、need_T_columns、need_T_value

無(wú)論是需要轉(zhuǎn)置多么復(fù)雜的 只要分清楚什么是固定的列,什么是需要轉(zhuǎn)置之后保留的列名(有的是多個(gè)日期),還有就是需要轉(zhuǎn)置的值就好了
將上面的最終結(jié)果輸出到excel里面

進(jìn)行總值對(duì)照是一樣的

原文鏈接:https://blog.csdn.net/KIKI_ZSH/article/details/127050505

欄目分類
最近更新