92162


### 解決したいこと

クラスタリングしたデータのクラスタIDを０から順番に引き出して重複を消して保存しているのですがクラスタの数を増やしたいとき手書きで付け加える以外のプログラムを作れませんどのようなコードを用いれば簡略化できるでしょうか

**例えばクラスタ数を100にして0から99を順番に抜き出して重複を消して保存したいとき  
自分は数字を変えて長文のコードにしていたのですが100までとなると相当な労力なので簡略化したいです**。

[code]

    import numpy as np
    import pandas as pd
    
    
    
    #csvを読み込み0
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==0]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai0.csv")
    
    
    
    #csvを読み込み
    df = pd.read_csv("allclsdata.csv")
    
    #クラスタIDを抽出
    X = df[df["cluster_id"]==1]
    X
    
    #重複削除
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    #保存
    sinX.to_csv("clusternai1.csv")
    
    #csvを読み込み2
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==2]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai2.csv")
    
    #csvを読み込み3
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==3]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai3.csv")
    
    #csvを読み込み4
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==4]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai4.csv")
    
    #csvを読み込み5
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==5]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai5.csv")
    
    #csvを読み込み6
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==6]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai6.csv")
    
    #csvを読み込み7
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==7]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai7.csv")
    
    #csvを読み込み8
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==8]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai8.csv")
    
    #csvを読み込み9
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==9]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai9.csv")
    
    #csvを読み込み10
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==10]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai10.csv")
    
    #csvを読み込み11
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==11]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusterna11.csv")
    
    #csvを読み込み12
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==12]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai12.csv")
    
    #csvを読み込み13
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==13]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai13.csv")
    
    #csvを読み込み14
    df = pd.read_csv("allclsdata.csv")
    
    X = df[df["cluster_id"]==14]
    X
    
    sinX = X.drop_duplicates(subset=["id_questionnaire"], keep='last')
    sinX
    
    sinX.to_csv("clusternai14.csv")
    
[/code]

### 補足情報

Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit
(AMD64)] on win32


CC BY-SA 4.0
2022-11-11T09:36:22.013
92161
2022-11-11T17:00:05.023
2022-11-11T17:00:05.023
3060
54916
question
python
プログラムの簡略化


データがないので試してないけど

[code]

    df = pd.read_csv("allclsdata.csv")
    
    for n, sdf in df.groupby('cluster_id'):
        sinX = sdf.drop_duplicates(subset=["id_questionnaire"], keep='last')
        display(sinX)
        sinX.to_csv(f'clusternai{n}.csv')
    
[/code]


CC BY-SA 4.0
2022-11-11T11:07:50.220
92162
2022-11-11T11:07:50.220
43025
92161
answer