将pandas df数据进行分块,列名相同,每50万行输出为一个EXCEL表格
时间: 2024-03-22 21:38:06 浏览: 27
可以使用 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 文件中。