我有一个带有100万条记录的csv文件
我想将该csv文件分为4个csv文件 并给出范围显示的偏移量 记录为 文件1有0-250k 文件2有251k- 500k 文件3有501k- 750k 文件4的751k-1000k
我如何在python中做到这一点?????
现在它显示为 文件1有0-250k 文件2有250k- 500k 文件3有500k- 750k 文件4的大小为750k-1000k,没有增加限制
让我们说我们正在读取下面包含100万条记录的文件
def load_f(file):
return pd.read_csv(file)
print("Loading data..")
file = load_f('F58139.csv')
file= load_f('F58139.csv')
filef = load_f('F58139.csv')
for循环-
for row in cursor.fetchall():
noOfRcrds = row[0]
noOfPart=3
limit=math.floor(noOfRcrds /noOfPart)
for i in range(noOfPart):
offset = i * limit
sql = sqlTbl.format(tableName=tableName, limit=limit, offset=offset)
print(sql)
df = pd.read_sql(sql, conn)
df.to_csv('/tmp/data/{tableName}-{partition}.csv'.format(tableName=tableName,partition=i),index=False,header = False)`
答案 0 :(得分:1)
我不明白您的所作所为,但我认为您想要这样的事情:
def divide_csv(arq, parts):
with open(arq) as file_in:
linhas = file_in.readlines()
n_linhas = len(linhas)
len_arq = n_linhas // parts
for i in range(parts):
offset = i * len_arq
with open(f'file{i}.csv', 'w') as out:
for j in range(offset, offset + len_arq): # Just write in correct range
out.write(linhas[j])
divide_csv('1000_Sales_Records.csv', 4)
首先,我打开文件并将其行存储在列表中,然后将这些行写入新文件中。
对不起,我的英语。