假设excel表df1有multiindex,两行表头“由江阴物流交江西物流”,和“序号、门店编码、 门店名称、实际包装总体积(M3) 、总箱数、集货区标识、地区”,行数不定,如何在底部添加四行空行,空行下面一行在序号列添加字段“合计”,在“实际包装总体积(M3)” 、“总箱数”列求和
时间: 2023-06-11 19:05:30 浏览: 39
您好,对于您的问题,可以使用以下代码实现:
```python
# 导入pandas包
import pandas as pd
# 读取excel表
df1 = pd.read_excel("your_file_path")
# 添加四行空行
for i in range(4):
df1 = df1.append(pd.Series(), ignore_index=True)
# 在序号列添加“合计”字段
df1.loc[df1.index[-4], "序号"] = "合计"
# 按照“实际包装总体积(M3)” 、“总箱数”列求和
df1.loc[df1.index[-4:], ["实际包装总体积(M3)", "总箱数"]] = df1.loc[:, ["实际包装总体积(M3)", "总箱数"]].sum()
# 保存修改后的excel表
df1.to_excel("your_output_file_path", index=False)
```
注意:您需要将上述代码中的“your_file_path”和“your_output_file_path”替换为您自己的文件路径和保存文件的路径。另外,如果您的表头中包含空格或括号等特殊字符,可以将其用引号包括起来,例如“实际包装总体积(M3)”应写为“'实际包装总体积(M3)'”。
相关问题
如何给excel表df1添加multiindex,两行表头“由江阴物流交江西物流”,和“序号、门店编码、 门店名称、实际包装总体积(M3) 、总箱数、集货区标识、地区”
您可以使用 MultiIndex.from_tuples 方法创建 MultiIndex,然后将其设置为 df1 的列索引。下面是实现代码:
```python
import pandas as pd
# 创建原始数据表df1(假设已经包含以上列)
df1 = pd.DataFrame()
# 创建multiindex
header = [("由江阴物流交江西物流","序号"),
("由江阴物流交江西物流","门店编码"),
("由江阴物流交江西物流","门店名称"),
("由江阴物流交江西物流","实际包装总体积(M3)"),
("由江阴物流交江西物流","总箱数"),
("由江阴物流交江西物流","集货区标识"),
("由江阴物流交江西物流","地区")]
multi_idx = pd.MultiIndex.from_tuples(header)
# 将multiindex设置为df1的列索引
df1.columns = multi_idx
```
以上代码将创建一个 multiindex,然后将其设置为 df1 的列索引,这样就可以自动添加两行表头“由江阴物流交江西物流”和“序号、门店编码、门店名称、实际包装总体积(M3)、总箱数、集货区标识、地区”。注意,如果 df1 已经包含了一些列,那么在设置 multiindex 时需要保证其长度与 df1 的列数相同。
假设excel表df1有multiindex,两行表头“由江阴物流交江西物流”,和“序号、门店编码、 门店名称、实际包装总体积(M3) 、总箱数、集货区标识、地区”,行数不定,如何在“门店名称”列的最后一行添加明天日期
您可以使用以下代码来解决这个问题:
```python
import pandas as pd
from datetime import datetime, timedelta
# 获取明天的日期
tomorrow = (datetime.now() + timedelta(days=1)).strftime('%Y-%m-%d')
# 读取Excel表格
df = pd.read_excel('df1.xlsx', header=[0, 1])
# 获取“门店名称”列的最后一行索引
last_index = df.index[-1]
# 在最后一行添加明天日期
df.loc[last_index, ('由江阴物流交江西物流', '门店名称')] = tomorrow
# 保存结果到Excel表格
df.to_excel('df1.xlsx', index=False)
```
这个代码会读取名为“df1.xlsx”的Excel表格,然后在表格的最后一行的“门店名称”列添加明天的日期,最后再将结果保存回Excel表格中。