質問するログイン新規登録

回答編集履歴

2

追記

2023/08/10 05:01

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -1,3 +1,18 @@
1
1
  `df = df[filter_sc]`で元の`df`が上書きされているためです。
2
2
  `df2 = df[filter_sc].copy()`のように別の`df2`で(念のためコピーして)処理するとよいでしょう。
3
3
  あと、リストそのままではなくsetにして重複を取り除いたものをforで回したほうが目的に合っていると思います。
4
+ ```Python
5
+ import pandas as pd
6
+
7
+ df = pd.DataFrame({'SC':[1,1,2],'Val':[1,2,3]})
8
+
9
+ for meigara in set(df['SC'].to_list()):
10
+ filter_sc = df['SC'] == meigara
11
+ df2 = df[filter_sc].copy()
12
+ print(df2)
13
+
14
+ # あるいはたんに以下でよい
15
+ for meigara, df2 in df.groupby('SC'):
16
+ print(meigara)
17
+ print(df2)
18
+ ```

1

追記

2023/08/10 04:38

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -1,2 +1,3 @@
1
1
  `df = df[filter_sc]`で元の`df`が上書きされているためです。
2
2
  `df2 = df[filter_sc].copy()`のように別の`df2`で(念のためコピーして)処理するとよいでしょう。
3
+ あと、リストそのままではなくsetにして重複を取り除いたものをforで回したほうが目的に合っていると思います。