猿问

使用 pandas 将顺序数据文件重新格式化为数据框

我有一个输入文件,现在转换为pandas.dataframe. 记录/行按顺序排列,其中包含表单的相关数据


    survey, a, b, c

    section, 1, 2, 3

    observation, a, b, c

    values, 1, 2, 3 

    values, 4, 5, 6

    observation, d, e, f

    values, 7, 8, 9

    section, 4, 5, 6

    ...

调查记录只出现一次。一个部分可能会出现多次,并将包含观察和价值记录。观察结果后面总是有值,有时是多条记录。


我正在尝试将其重新格式化为行,其中每组值与相应的调查、部分和观察位于单独的行上。


survey, a,b,c, section, 1,2,3, observation, a,b,c, values, 1,2,3

survey, a,b,c, section, 1,2,3, observation, a,b,c, values, 4,5,6

survey, a,b,c, section, 1,2,3, observation, d, e, f, values, 7, 8, 9

survey, a,b,c, section, 4, 5, 6 and so on....

这可以pandas通过 if, then else 结构来完成还是应该迭代?


到目前为止,我尝试过的方法如下(这些方法可能过于简单并且方向错误):


#pd.DataFrame(hmdDataToProcess.unstack())


#hmdDataToProcess.unstack


#hmdDataToProcess.stack


#pd.melt(hmdDataToProcess, id_vars =[0], value_vars = 

['SURVEY','SECTION','OBSERV','OBVAL'])


#df2 = hmdDataToProc0ess.pivot_table(index = [0]).reset_index()


#df2 = df_in.pivot_table(index = 

#['Example1','Example2'],columns='VC', values=

#['Weight','Rank']).reset_index()


#hmdDataToProcess.groupby('SECTION').groups #, 'OBSERV', 'OBVAL'


慕神8447489
浏览 147回答 1
1回答

繁星淼淼

你可以不使用 Pandass = '''survey, a, b, c     section, 1, 2, 3     observation, a, b, c     values, 1, 2, 3      values, 4, 5, 6     observation, d, e, f     values, 7, 8, 9     section, 4, 5, 6'''list_s = s.strip().split('\n')list_s = [x.strip() for x in list_s]list_s# ['survey, a, b, c', 'section, 1, 2, 3', 'observation, a, b, c', 'values, 1, 2, 3', 'values, 4, 5, 6', 'observation, d, e, f', 'values, 7, 8, 9', 'section, 4, 5, 6']for el in list_s:   if el.split(',')[0] == 'survey':     survey = el   if el.split(',')[0] == 'section':     section = el   if el.split(',')[0] == 'observation':     observation = el   if el.split(',')[0] == 'values':     print(f"{survey},{section},{observation},{el}")#survey, a, b, c,section, 1, 2, 3,observation, a, b, c,values, 1, 2, 3#survey, a, b, c,section, 1, 2, 3,observation, a, b, c,values, 4, 5, 6#survey, a, b, c,section, 1, 2, 3,observation, d, e, f,values, 7, 8, 9
随时随地看视频慕课网APP

相关分类

Python
我要回答