【发布时间】:2021-10-14 21:04:32
【问题描述】:
我有很多行如下图所示。我正在尝试为非常长的“区域”列中的每个值创建一个新行。每个新行都会复制前三列的数据,并在列中保留下一个“区域”值。
我相信 pandas 中的 explode 方法是我所需要的,但我的数据并没有以我期望的方式从列表中脱颖而出。
#Constants and Public Variables
df = pd.read_excel("input.xlsx", sheet_name=0, usecols='D,G,H,K')
df = df.dropna()
new_header = df.iloc[0] #grab the first row for the header
df = df[1:] #take the data less the header row
df.columns = new_header #set the header row as the df header
zones = [['CA2,SW1,SW3,SW2,STH2,STH3,STH0,NTH0,DR1,DR2,MID1,MID2,MID3,NE1,NE2,NE3,NTH1,NTH2,NTH3,PLN1,PLN2,PLN3,NW1,NW2'],['CA2,SW1,SW3,SW2,STH2,STH3,STH0,NTH0,DR1,DR2,MID1,MID2,MID3,NE1,NE2,NE3,NTH1,NTH2,NTH3,PLN1,PLN2,PLN3,NW1,NW2'],['CA2,SW1,SW3,SW2,STH2,STH3,STH0,NTH0,DR1,DR2,MID1,MID2,MID3,NE1,NE2,NE3,NTH1,NTH2,NTH3,PLN1,PLN2,PLN3,NW1,NW2']]
replace_values = ['All Zones', 'All Zones ', 'all']
df = df.replace(to_replace=replace_values, value=zones)
df = df.explode("ZONES")
df.to_csv("outout.csv")
【问题讨论】:
标签: python pandas dataframe csv delimiter