【问题标题】:find which column is unique to which excel worksheet dataframe查找哪个列对于哪个 excel 工作表数据框是唯一的
【发布时间】:2021-01-26 10:28:13
【问题描述】:

我有一个包含 40 个工作表的 Excel 表。我需要知道这些工作表中的哪些列在其他工作表中不存在。 前任 表号 1: column1 column2 column3 column4

第 2 页: column1 column2 column3 column5

第 3 页: 第1列第2列第3列第5列第6列

我的数据框:

df_column_sheet_name    column
sheet number 1:           column4
sheet number 2:           column5
sheet number 3:           column5,column6

非常感谢您的帮助 问候

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    首先使用sheet_name=None参数将所有工作表转换为DataFrames字典:

    df = pd.read_excel('file.xlsx', sheet_name=None)
    #print (df)
    

    然后通过reduce获取所有工作表中相同的所有列:

    from functools import reduce
    same = reduce(lambda x, y: set(x) & set(y), df.values())
    print (list(same))
    ['column1', 'column2', 'column3']
    

    最后过滤列名称不匹配的连接列并传递给DataFrame构造函数:

    out = [(k, ', '.join(x for x in v.columns if x not in same)) for k, v in df.items()]
    print (out)
    [('sheet number 1', 'column4'), 
     ('sheet number 2', 'column5'), 
     ('sheet number 3', 'column5, column6')]
    
    
    df1 = pd.DataFrame(out, columns=['df_column_sheet_name','column'])
    print (df1)
      df_column_sheet_name            column
    0       sheet number 1           column4
    1       sheet number 2           column5
    2       sheet number 3  column5, column6
    

    【讨论】:

    • 感谢您回复此问题,但我的结果是所有列都不是不同的列
    • @learningtocode - 不幸的是,这意味着没有通用文件名
    • @learningtocode - 使用this file测试
    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    相关资源
    最近更新 更多