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
我写了一个脚本,从网页收集链接列表,然后从每个链接中抓取一个包含数据的 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