在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)
这个是什么意思?只合并有值的数据行?如果是用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)
这样就能只读取可见单元格内的信息了。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!