Re-structuring csv 文件中的数据

Re-structuring data in a csv file

我写了一个脚本,从网页收集链接列表,然后从每个链接中抓取一个包含数据的 table,一切正常。

我的下一项工作是将 table 重组为对我的最终目标更有意义的安排。我什至不确定我想做什么的术语,所以我会尝试用一个例子来解释。

我使用上述练习创建了 50 个奇怪的文件,如下所示:

            Identifier, Data1, Data2, Data3
            abc,x,x,x
            def,x,x,x
            ghi,x,x,x

我希望每个数据 header 与其值一起成为 table 的一部分,如下所示:

            Identifier, Measure, Value
            abc, Data1, x
            def, Data1, x
            ghi, Data1, x               
            abc, Data2, x
            def, Data2, x
            ghi, Data2, x               
            abc, Data3, x
            def, Data3, x
            ghi, Data3, x               
            abc, Data4, x
            def, Data4, x
            ghi, Data4, x               

手动操作非常简单,但是当处理 30-50 个文件时,它可能会有点乏味(这是我必须每隔几个月做一次的任务)。我不确定将我的工作表合并在一起会更快(但有些工作表包含额外的 headers),单独执行此任务然后合并它们,甚至在抓取数据时按照我想要的方式构建数据.

希望这是有道理的。任何帮助将不胜感激,我很乐意澄清任何事情!谢谢

您可以使用 pandas.melt:

>>> df
  Identifier  Data1  Data2  Data3
0        abc      1      4      7
1        def      2      5      8
2        ghi      3      6      9

>>> pd.melt(df, id_vars='Identifier', 
...         value_vars=['Data1', 'Data2', 'Data3'], 
...         var_name='Measure', value_name='Value')

  Identifier Measure  Value
0        abc   Data1      1
1        def   Data1      2
2        ghi   Data1      3
3        abc   Data2      4
4        def   Data2      5
5        ghi   Data2      6
6        abc   Data3      7
7        def   Data3      8
8        ghi   Data3      9