首页 > 解决方案 > 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 

标签: pythonpandas

解决方案


这是将输出重构为所需输出的一种方法:

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

推荐阅读