df根据列A拆分文件,行数不超过249999,且同一key值在一个文件,保存为csv的代码
时间: 2024-12-14 19:28:25 浏览: 12
在Python中,你可以使用pandas库结合`read_csv`、`groupby`和`to_csv`函数来根据列A的值将数据拆分成多个CSV文件,每个文件的行数控制在249999行以内,并且保证每个key值都在一个单独的文件中。假设你的数据集存储在名为df的DataFrame中,列名是'A',以下是示例代码:
```python
import pandas as pd
# 假设你的数据集已经读入
df = pd.read_csv('your_data.csv') # 替换为你实际的数据文件路径
# 设置分块大小为249999行
chunksize = 249999
# 创建一个空列表来存放分块后的DataFrame
file_blocks = []
# 使用groupby和iterrows按列A的值进行分组并逐块处理
for key, group in df.groupby('A', sort=False): # sort=False保留原始顺序
group = group.reset_index(drop=True) # 为了下一次迭代,重置索引
file_blocks.append(group)
# 当块满时,保存为CSV文件
if len(file_blocks[-1]) == chunksize:
filename = f"{key}.csv" # 文件名基于key
file_blocks[-1].to_csv(filename, index=False)
print(f'Saved block for key {key} to {filename}')
# 检查是否有剩余的小于chunksize的块,如果有也保存
if file_blocks:
for i, block in enumerate(file_blocks):
if i == 0 and len(block) < chunksize:
continue # 首块不足chunksize,跳过
filename = f"small_{i}.csv"
block.to_csv(filename, index=False)
print(f'Saved remaining block to {filename}')
```
阅读全文