pandas 写入excel中每50万行存储为一个单独的表格
时间: 2024-03-22 15:38:01 浏览: 19
可以使用 Pandas 的 `ExcelWriter` 和 `chunksize` 参数实现将数据写入到多个工作表中,每个工作表最多包含 50 万行数据。示例代码如下:
```python
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 将数据按行进行分块
chunks = pd.read_csv('data.csv', chunksize=500000)
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('output.xlsx')
# 遍历每个数据块,将数据写入到工作表中
for i, chunk in enumerate(chunks):
# 构造工作表名称
sheet_name = 'Sheet{}'.format(i + 1)
# 将数据写入到工作表中
chunk.to_excel(writer, sheet_name=sheet_name, index=False)
# 保存 Excel 文件
writer.save()
```
这段代码将数据文件 `data.csv` 中的数据按行进行分块,每块最多包含 50 万行数据。然后,将每个数据块写入到一个新的工作表中,并将这些工作表保存到一个名为 `output.xlsx` 的 Excel 文件中。
相关问题
excel 表格输入pandas,去重处理完之后,再写入excel中,并且按照每50万行存储为一个单独的表格。
可以使用 Pandas 的 `read_excel` 和 `to_excel` 方法读写 Excel 文件,以及 `drop_duplicates` 方法进行去重处理。同时,可以结合 `ExcelWriter` 和 `chunksize` 参数实现将数据写入到多个工作表中,每个工作表最多包含 50 万行数据。示例代码如下:
```python
import pandas as pd
# 读取 Excel 文件中的数据
df = pd.read_excel('input.xlsx')
# 对数据进行去重处理
df = df.drop_duplicates()
# 将数据按行进行分块
chunks = pd.read_excel('input.xlsx', sheet_name=None, chunksize=500000)
# 创建 ExcelWriter 对象
writer = pd.ExcelWriter('output.xlsx')
# 遍历每个数据块,将数据写入到工作表中
for i, (_, chunk) in enumerate(chunks.items()):
# 构造工作表名称
sheet_name = 'Sheet{}'.format(i + 1)
# 将数据写入到工作表中
chunk.to_excel(writer, sheet_name=sheet_name, index=False)
# 保存 Excel 文件
writer.save()
```
这段代码将 Excel 文件 `input.xlsx` 中的数据读入到 Pandas 的 DataFrame 中,然后对数据进行去重处理。接着,将数据按行进行分块,每块最多包含 50 万行数据。然后,将每个数据块写入到一个新的工作表中,并将这些工作表保存到一个名为 `output.xlsx` 的 Excel 文件中。
将pandas df数据进行分块,列名相同,每50万行输出为一个EXCEL表格
可以使用 Pandas 的 `read_csv` 和 `to_csv` 方法读写 CSV 文件,以及 `chunksize` 参数实现将数据按行进行分块。同时,可以结合 `groupby` 方法和遍历操作,将数据分组后,每50万行输出为一个新的 CSV 文件。示例代码如下:
```python
import pandas as pd
# 读取 CSV 文件中的数据
df = pd.read_csv('data.csv')
# 将数据按行进行分块
chunks = pd.read_csv('data.csv', chunksize=500000)
# 按照列名进行分组
groups = df.groupby(df.columns.tolist(), sort=False)
# 遍历每个数据块,将分组后的数据写入到 CSV 文件中
for i, chunk in enumerate(chunks):
# 将数据块与分组后的数据进行合并
group_chunk = chunk.groupby(chunk.columns.tolist(), sort=False)
groups = groups.apply(lambda x: x.append(group_chunk.get_group(x.name), ignore_index=True))
# 如果当前数据块的行数超过 50 万行,将分组后的数据写入到 CSV 文件中,并开始下一组
if i % 10 == 0 and i > 0:
groups.to_csv('output_{}.csv'.format(i // 10), index=False)
groups = df.groupby(df.columns.tolist(), sort=False)
# 将剩余的数据写入到 CSV 文件中
if len(groups) > 0:
groups.to_csv('output_{}.csv'.format((i // 10) + 1), index=False)
```
这段代码将 CSV 文件 `data.csv` 中的数据读入到 Pandas 的 DataFrame 中,然后将数据按行进行分块,每块最多包含 50 万行数据。接着,按照列名进行分组,并遍历每个数据块,将分组后的数据写入到一个新的 CSV 文件中。如果当前数据块的行数超过 50 万行,则将分组后的数据写入到 CSV 文件中,并开始下一组。最后,将剩余的数据写入到 CSV 文件中。