【实验数据处理】由pandas.DataFrame生成一个包含多个sheet的xlsx文件

基本

可以使用 pandas 库中的 ExcelWriter 来将多个 DataFrame 写入同一个 Excel 文件的不同 sheet 中。下面是一个示例代码,演示了如何将几个 DataFrame 输出到同一个 Excel 文件的不同 sheet:

import pandas as pd

# 创建示例数据
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
df3 = pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})

# 将DataFrame写入同一个xlsx文件的不同sheet
with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1')
    df2.to_excel(writer, sheet_name='Sheet2')
    df3.to_excel(writer, sheet_name='Sheet3')

这个示例代码中,创建了三个 DataFrame df1df2df3,然后使用 pd.ExcelWriter 打开一个新的 Excel 文件 output.xlsx。在 with 语句块内,调用 to_excel 方法将每个 DataFrame 写入不同的 sheet 中。sheet_name 参数指定每个 DataFrame 写入的 sheet 名称。

这样就可以将多个 DataFrame 写入同一个 Excel 文件的不同 sheet 中了。生成的xslx文件效果如图:
在这里插入图片描述

修改每行的第一列

如果你想要在每个 sheet 中的每行第一列设置特定的数字,可以在将 DataFrame 写入 Excel 文件之前修改 DataFrame。以下是一个示例代码,演示如何在每个 DataFrame 中的第一列添加一个特定的数字,然后将这些 DataFrame 写入同一个 Excel 文件的不同 sheet 中:

import pandas as pd

# 创建示例数据
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
df3 = pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})

# 设置每行的第一列数字
df1.insert(0, 'Index', range(1, len(df1) + 1))
df2.insert(0, 'Index', range(1, len(df2) + 1))
df3.insert(0, 'Index', range(1, len(df3) + 1))

# 将DataFrame写入同一个xlsx文件的不同sheet
with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)
    df3.to_excel(writer, sheet_name='Sheet3', index=False)

在这个示例中,insert 方法在每个 DataFrame 的第一列插入了一个名为 Index 的列,并为其赋值为 1 到 DataFrame 行数的范围。然后,将这些修改后的 DataFrame 写入 Excel 文件的不同 sheet 中。

具体说明如下:

  1. 使用 insert 方法在 DataFrame 的第 0 列插入一个新列,并将其命名为 Index
  2. 使用 range 函数生成从 1 到 DataFrame 行数的数字序列。
  3. 将修改后的 DataFrame 写入 Excel 文件,每个 DataFrame 在不同的 sheet 中,且不包含默认的索引列(通过设置 index=False 参数)。

这样,输出的 Excel 文件中的每个 sheet 将会有一列名为 Index 的第一列,其中包含特定的数字序列。效果如图,可以看到,相比之前而言,第一列被改名为了“Index”,且其中的数字都比原来的下标+1:
在这里插入图片描述

修改Index列的标题

只需要修改pandas.DataFrame.insert方法的第二个参数。
如果要修改第一列的标题,可以在将 DataFrame 写入 Excel 文件之前更改列名。下面是一个示例代码,演示如何将每个 DataFrame 的第一列标题设置为自定义标题,并将这些 DataFrame 写入同一个 Excel 文件的不同 sheet 中:

import pandas as pd

# 创建示例数据
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
df3 = pd.DataFrame({'E': [13, 14, 15], 'F': [16, 17, 18]})

# 设置每行的第一列数字
df1.insert(0, 'CustomIndex', range(1, len(df1) + 1))
df2.insert(0, 'CustomIndex', range(1, len(df2) + 1))
df3.insert(0, 'CustomIndex', range(1, len(df3) + 1))

# 将DataFrame写入同一个xlsx文件的不同sheet
with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)
    df3.to_excel(writer, sheet_name='Sheet3', index=False)

在这个示例中,insert 方法在每个 DataFrame 的第一列插入了一个名为 CustomIndex 的列,并为其赋值为 1 到 DataFrame 行数的范围。然后,将这些修改后的 DataFrame 写入 Excel 文件的不同 sheet 中。

具体步骤如下:

  1. 使用 insert 方法在 DataFrame 的第 0 列插入一个新列,并将其命名为 CustomIndex
  2. 使用 range 函数生成从 1 到 DataFrame 行数的数字序列。
  3. 将修改后的 DataFrame 写入 Excel 文件的不同 sheet 中,且不包含默认的索引列(通过设置 index=False 参数)。

这样,输出的 Excel 文件中的每个 sheet 将会有一列名为 CustomIndex 的第一列,其中包含特定的数字序列。你可以根据需要将 CustomIndex 更改为任何你想要的标题。效果如图:
在这里插入图片描述

  • 20
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas是一种在Python中非常流行的数据处理库。它提供了强大的功能使得我们能够方便地从多个文件中读取数据,并且根据关键字将这些数据按列进行合并。 首先,我们需要先导入Pandas这个库。导入方法如下: ```python import pandas as pd ``` 然后我们需要指定文件路径,并读取文件。对于CSV文件,可以使用`pd.read_csv()`方法来读取,对于XLSX文件,可以使用`pd.read_excel()`方法来读取。方法的第一个参数为文件路径,第二个参数为sheet的名称。 ```python df1 = pd.read_csv('file1.csv') df2 = pd.read_csv('file2.csv') df3 = pd.read_excel('file3.xlsx', sheet_name='Sheet1') ``` 我们可以通过`pd.concat()`方法将多个DataFrame对象合并在一起,该方法的第一个参数是一个元组,包含需要合并在一起的DataFrame对象。参数`axis`设置为1,表示它们应该沿着列方向合并。但是现在我们需要根据关键字匹配,那么我们需要通过`pd.merge()`方法来合并。 ```python merged_df = pd.merge(df1, df2, on='keyword') merged_df = pd.merge(merged_df, df3, on='keyword') ``` 这段代码将DataFrame对象df1和df2按照关键字进行匹配,其次将得到的结果再与df3按照同样的方式进行匹配。最终结果将会是一个经过匹配合并过的DataFrame对象。 总结来说,我们可以使用Pandas库中的read_csv、read_excel、concat和merge方法按列合并多个CSV、XLSX文件数据,并根据关键字进行匹配。这让我们能够方便地从多个文件中读取数据,并能够将它们组合成一个更完整的数据集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值