dfのデータを一気にモデルに書き込みたいんだ
DataFrameのデータを一括でモデルに書き込む方法があります。そのために、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のデータをモデルに一括で書き込む
models_to_create = []
for _, row in df.iterrows():
model = Rakuten_Searvey_data(
自社品番=row['自社品番'],
商品名=row['商品名'],
調査ワード=row['調査ワード'],
調査ワード2=row['調査ワード2'],
除外ワード=row['除外ワード'],
原価=row['原価'],
調査下限価格=row['調査下限価格'],
調査上限価格=row['調査上限価格'],
調整下限価格=row['調整下限価格'],
調整上限価格=row['調整上限価格'],
調整金額=row['調整金額'],
価格調整フラグ=row['価格調整フラグ'],
メーカー名=row['メーカー名'],
メーカー品番=row['メーカー品番']
)
models_to_create.append(model)
# モデルを一括で保存する
Rakuten_Searvey_data.objects.bulk_create(models_to_create)
# 保存されたデータを取得して表示する
saved_data = Rakuten_Searvey_data.objects.all()
for data in saved_data:
print(data.原価) # 保存されたデータの原価を表示する
if __name__ == "__main__":
main()
このコードでは、DataFrameから取得したデータをbulk_createメソッドを使って一括でモデルに保存しています。保存後、データが正常に保存されたかどうかを確認するために、保存されたデータの一部を表示しています。

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