大きなファイルがあり、Pandasの単一のデータフレームにインポートされています。 私は、ファイルを複数のセグメントに分割するために、データフレームの行数でpandasを使用しています。pandas:複数のcsvにデータフレームを分割
例:10行:1が取得する ファイル[0:4] [:9 5]
は、より多くのデータフレームを作成することなく、これを行う方法はあり ファイル2を取得しますか?
大きなファイルがあり、Pandasの単一のデータフレームにインポートされています。 私は、ファイルを複数のセグメントに分割するために、データフレームの行数でpandasを使用しています。pandas:複数のcsvにデータフレームを分割
例:10行:1が取得する ファイル[0:4] [:9 5]
は、より多くのデータフレームを作成することなく、これを行う方法はあり ファイル2を取得しますか?
これには2通りの方法があります。私はあなたが元を探していると信じています。基本的には、一連のcsvライターを開いてから、インデックスを使って基本的な数式を使って正しいcsvライターに書き込んだ後、すべてのファイルを閉じます。
import pandas as pd
import csv, math
df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10]) # uncreative input values for 10 columns
NUMBER_OF_SPLITS = 2
fileOpens = [open(f"out{i}.csv","w") for i in range(NUMBER_OF_SPLITS)]
fileWriters = [csv.writer(v, lineterminator='\n') for v in fileOpens]
for i,row in df.iterrows():
fileWriters[math.floor((i/df.shape[0])*NUMBER_OF_SPLITS)].writerow(row.tolist())
for file in fileOpens:
file.close()
import pandas as pd
import numpy as np
df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10]) # uncreative input values for 10 columns
NUMBER_OF_SPLITS = 2
for i, new_df in enumerate(np.array_split(df,NUMBER_OF_SPLITS)):
with open(f"out{i}.csv","w") as fo:
fo.write(new_df.to_csv())
反復トリックを行いますILOCの引数以上のCSVファイルのN個に分割のN個に分割します。
必要なものを得るために
df[df.g==1]
を呼び出すことができますか? – Wenキャッチのためにありがとう。私はその詳細 – billyc59
'df.iloc [0:4、:]。to_csv(path)'でその質問を更新し、それを繰り返して... – DJK