for文も使いたくない
理解しました。bulk_createメソッドを使ってDataFrameのデータを一括でモデルに書き込む方法を提供します。
python
import pandas as pd from value_search.models import Rakuten_Searvey_data def main(): import_file = "/home/NBSystem/value_search/import/rakuten1_servey_data.csv" df = pd.read_csv(import_file) # DataFrameの各列のデータ型を適切に変換する df['自社品番'] = df['自社品番'].astype(str) df['商品名'] = df['商品名'].astype(str) df['調査ワード'] = df['調査ワード'].astype(str) df['調査ワード2'] = df['調査ワード2'].astype(str) df['除外ワード'] = df['除外ワード'].astype(str) df['原価'] = df['原価'].astype(int) df['調査下限価格'] = df['調査下限価格'].astype(int) df['調査上限価格'] = df['調査上限価格'].astype(int) df['調整下限価格'] = df['調整下限価格'].astype(int) df['調整上限価格'] = df['調整上限価格'].astype(int) df['調整金額'] = df['調整金額'].astype(int) df['価格調整フラグ'] = df['価格調整フラグ'].astype(int) df['メーカー名'] = df['メーカー名'].astype(str) df['メーカー品番'] = df['メーカー品番'].astype(str) # DataFrameのデータを一括でモデルに書き込む objs = [ Rakuten_Searvey_data( 自社品番=row['自社品番'], 商品名=row['商品名'], 調査ワード=row['調査ワード'], 調査ワード2=row['調査ワード2'], 除外ワード=row['除外ワード'], 原価=row['原価'], 調査下限価格=row['調査下限価格'], 調査上限価格=row['調査上限価格'], 調整下限価格=row['調整下限価格'], 調整上限価格=row['調整上限価格'], 調整金額=row['調整金額'], 価格調整フラグ=row['価格調整フラグ'], メーカー名=row['メーカー名'], メーカー品番=row['メーカー品番'] ) for _, row in df.iterrows() ] Rakuten_Searvey_data.objects.bulk_create(objs) # 保存されたデータを取得して表示する saved_data = Rakuten_Searvey_data.objects.all() for data in saved_data: print(data.原価) # 保存されたデータの原価を表示する if __name__ == "__main__": main()
このコードでは、bulk_createメソッドに渡すリストを内包表記で作成し、それを一括で保存しています。これにより、明示的なforループを使わずにDataFrameのデータを効率的にモデルに書き込むことができます。

ディスカッション
コメント一覧
まだ、コメントがありません