python - Pandas 循环组织合并信息
问题描述
伙计们,我正在将特定信息合并到一个循环中的数据帧中,但它并没有像我想要的那样形成。
这是代码:`
for file in csv_files:
arqs = pd.read_excel(file)
for i in range(len(arqs.columns)):
titulos.append(Conv_Num_Str(i+1))
arqs.columns=[titulos]
titulos.clear()
PLDV_Nome_torre = arqs[Nome_torre[0]].iloc[int(Nome_torre[1])-2:int(Nome_torre[1])-1]
Tabela_Dados_Localizados1= pd.concat([Tabela_Dados_Localizados,PLDV_Nome_torre])
try:
PLDV_Tipo_torre = arqs[Tipo_torre[0]].iloc[int(Tipo_torre[1])-2:int(Tipo_torre[1])-1]
Tabela_Dados_Localizados = pd.concat([Tabela_Dados_Localizados,PLDV_Tipo_torre])
except: pass
try:
PLDV_Progressiva_torre = arqs[Progressiva_torre[0]].iloc[int(Progressiva_torre[1])-2:int(Progressiva_torre[1])-1]
Tabela_Dados_Localizados = pd.concat([Tabela_Dados_Localizados,PLDV_Progressiva_torre])
except: pass
输出像贝宁
E I
4 2/1=MV01 NaN
6 JJAA NaN
4 NaN 2093.374
4 9/2=MV01C NaN
6 JJSP NaN
4 NaN 9883.078
4 13/2=MV01D NaN
6 JJSP NaN
4 NaN 13860.772
但我想要`
E I J
4 2/1=MV01 JJAA 2093.374
4 9/2=MV01C JJSP 9883.078
4 13/2=MV01D JJSP 13860.772
解决方案
这是将输出重构为所需输出的一种方法:
df = pd.DataFrame(df['E'].combine_first(df['I']).values.reshape(-1,3), columns = ['E', 'I', 'J'])
输出:
E I J
0 2/1=MV01 JJAA 2093.374
1 9/2=MV01C JJSP 9883.078
2 13/2=MV01D JJSP 13860.772