Python 如何将复杂的excel表格数据转换为构造数据?

Python 如何将复杂的excel表格数据转换为构造数据?,python,excel,machine-learning,Python,Excel,Machine Learning,我遇到了如下问题,希望有人能给我一些建议。 我需要将许多不同形状的excel表格转换为构造数据,excel表格如下所示 |--------------------|----|----| |user:Sam | | | |--------------------|----|----| |mail:sam@example.com| | | |-------|----------------|-----| |user |Jack

我遇到了如下问题,希望有人能给我一些建议。
我需要将许多不同形状的excel表格转换为构造数据,excel表格如下所示

|--------------------|----|----|
|user:Sam            |    |    |
|--------------------|----|----|  
|mail:sam@example.com|    |    |  


|-------|----------------|-----|
|user   |Jack            |     |
|-------|----------------|-----|
|mail   |jack@example.com|     | 
|-------|----------------|-----|


|-------|-----|---------------|---------|
|user   |May  |               |         |
|-------|-----|---------------|---------|
|       |mail |may@example.com|         |
|-------|-----|---------------|---------|


|user   | Alex  |mail  |alex@example.com|
目标结果将类似于以下格式

|-------|-------------------|
|user   | email             |
|-------|-------------------|
|Jack   | jack@example.com  |
|-------|-------------------|
|Sam    | sam@example.com   |
|-------|-------------------|
|Alex   | alex@example.com  |
|-------|-------------------|
|May    | may@example.com   |
|-------|-------------------|
我目前的解决方案是为每种类型的excel表定义一个函数。但是会有数千个不同的excel文件,所以我不得不重复编写类似的代码。所以我的问题是,是否有共同的解决方案

我找到了一个关于这个的,但是没有更多的信息。我认为机器学习可能有助于解决这个问题,但我对此知之甚少。有没有人可以分享一些想法?
非常感谢

您有4种类型的文件

如果这是所有你可以写1个函数和4个If语句

def table_sort(file):

    If file == condition:
         extract_data_this_way 

   elif file == other_condition:
        extract_data_this_way

   elif file == other_condition:
        extract_data_this_way

   else:
        extract_data_this_way
如果您使用pandas来实现这一点,那么编写代码就容易多了


我想你有很多档案。您可以传入一个列表并使用for循环进行迭代。或者使用glob将所有excel文件加载到一个目录中,并以这种方式循环。

查看您在问题中提供的模式,我们发现数据有时在单独的单元格中,有时在文本中用“:”分隔符编码。我会将它展平,并将组合文本解析为线性模式

我建议您使用以下内容阅读excel文件:。 然后逐步遍历单元格,提取文本并解析出您感兴趣的字段

<cell>'user'<cell|':'>user_name<cell>'mail'<cell|':'>email_address<cell>
“用户”用户名“邮件”电子邮件地址
其中,
是一个或多个单元格边界,可能分布在行上


一旦您有了用户电子邮件对,您就可以使用。

这只适合4种示例格式。OP表示,他将不得不处理更多不同的格式…他说将有数千个文件,并介绍了4种类型。我的答案对这个问题来说已经足够了。谢谢你的建议,很抱歉我对这个问题的描述不好。条件是还有更多的格式我不确定。更复杂的是,同一个表中还有其他字段要提取,这没问题。这只会让问题更有趣。