我有大约200个CSV文件,我需要将它们合并到特定的列中。每个CSV文件在特定列上包含1000个填充行。我的文件名如下:
csv\u文件=[en\u tr\u translated0.csv,en\u tr\u translated1000.csv,en\u tr\u translated2000.csv,…,en\u tr\u translated200000.csv]
我的csv文件列如下所示:
在所有csv文件中,前两列预填充到相同的200.000行/句子。我的每个
en_tr_translated{ }.csv
文件包含1000个与其文件名相关的翻译句子。例如:
en_tr_translated1000.csv
文件包含从第0行到第1000行的翻译句子,
en_tr_translated2000.csv
文件包含从第1000行到第2000行等的翻译句子。其余为nan/空。下面是来自
en_tr_translated3000.csv
文件
我想复制/合并/连接这些行,以获得一个包含所有翻译句子的完整csv文件。我尝试了以下代码:
out = pd.read_csv(path + 'en_tr_translated0.csv', sep='\t', names=['en_sentence', 'tr_sentence', 'translated_tr_sentence', 'translated_en_sentence'], dtype=str, encoding='utf-8', low_memory=False)
##
i = 1000
for _ in tqdm(range(200000)):
new = pd.read_csv(path + f'en_tr_translated{i}.csv', sep='\t', names=['en_sentence', 'tr_sentence', 'translated_tr_sentence', 'translated_en_sentence'], dtype=str, encoding='utf-8', low_memory=False)
out.loc[_, 'translated_tr_sentence'] = new.loc[_, 'translated_tr_sentence']
out.loc[_, 'translated_en_sentence'] = new.loc[_, 'translated_en_sentence']
if _ == i:
i += 1000
实际上,它工作得很好,但我的问题是,它需要105个小时!!
有没有更快的方法?我必须为5个不同的数据集这样做,这让人非常恼火。
欢迎提出任何建议。