pandas 合并可见单元格

在excel有两个工作表,我想将已经筛选出的值,按照相同列合并到一个工作表中。但现在可以读取所有合并, 而不能只读取可见单元格内信息

    df = pd.read_excel(excel_name, sheet_name=i)
    df1= df[["cost center","BC Code","Netsales","Item","DVN"]]

    Merge_data = Merge_data.append(df1)

img

img

img

但现在可以读取所有合并, 而不能只读取可见单元格内信息

这个是什么意思?只合并有值的数据行?如果是用dropna删除含有空值的行后在合并,具体参考下面的文章

https://blog.csdn.net/happy_wealthy/article/details/108576944

要只读取可见单元格内信息,可以使用Pandas的dropna()函数来删除含有缺失值的行,因为筛选后的行通常被Excel隐藏在后面,可以将它们视为缺失值进行删除。

以下是修改代码的示例:

df = pd.read_excel(excel_name, sheet_name=i)
df1 = df[["cost center", "BC Code", "Netsales", "Item", "DVN"]]
df1 = df1.dropna()  # 删除含有缺失值的行
Merge_data = Merge_data.append(df1)

dropna()函数默认删除所有含有缺失值的行,也可以通过设置how参数和subset参数来控制删除行的条件。例如,可以设置how='all'来删除所有行都含有缺失值的行,或者设置subset=['cost center']来仅删除"cost center"列含有缺失值的行。

df = pd.read_excel(excel_name, sheet_name=i)
df1 = df[["cost center", "BC Code", "Netsales", "Item", "DVN"]]
df1 = df1.dropna(how='all', subset=['cost center'])
Merge_data = Merge_data.append(df1)

注意:dropna()函数不会修改原始的DataFrame,而是返回一个删除缺失值后的新DataFrame,因此需要将新的DataFrame赋值给原始的DataFrame。

参考GPT和自己的思路:

您可以通过 pandas.DataFrame.visible_cells 方法来获取可见单元格,然后再对可见单元格进行合并操作。具体的代码如下:

    df = pd.read_excel(excel_name, sheet_name=i)
    df1 = df.visible_cells().cols[["cost center","BC Code","Netsales","Item","DVN"]].to_frame()

    Merge_data = Merge_data.append(df1)

这样就能只读取可见单元格内的信息了。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632