回答編集履歴
3
抽出例を追記
test
CHANGED
@@ -25,3 +25,19 @@
|
|
25
25
|
# 8 佐藤 詩織 科学 20
|
26
26
|
```
|
27
27
|
|
28
|
+
### 追記
|
29
|
+
|
30
|
+
> 上記機能を実装したら、英語が90点以上だった場合の処理などを追加したい
|
31
|
+
|
32
|
+
[pandas.DataFrame.query — pandas 2.2.3 documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html) を利用して、変形後のデータフレーム(`exploded_df`)から条件に適合するレコードを抽出します。
|
33
|
+
|
34
|
+
```python
|
35
|
+
exploded_df.columns = ['名前', '科目', '点数']
|
36
|
+
result = exploded_df.query('科目=="英語" and 点数 >= 90')
|
37
|
+
print(result)
|
38
|
+
|
39
|
+
# 名前 科目 点数
|
40
|
+
# 0 青山 太郎 英語 90
|
41
|
+
```
|
42
|
+
|
43
|
+
|
2
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
exploded_df = pd.json_normalize(data, 'GradePoint', ['Name']).reset_index()\
|
10
10
|
.rename(columns={'English': '英語', 'Math': '数学', 'Science': '科学'})\
|
11
11
|
.melt(id_vars=['index', 'Name']).sort_values('index', kind='stable')\
|
12
|
-
.drop(columns='index').reset_index(drop=True)
|
12
|
+
.drop(columns='index').reset_index(drop=True).astype({'value': int})
|
13
13
|
|
14
14
|
print(exploded_df)
|
15
15
|
|
1
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
exploded_df = pd.json_normalize(data, 'GradePoint', ['Name']).reset_index()\
|
10
10
|
.rename(columns={'English': '英語', 'Math': '数学', 'Science': '科学'})\
|
11
|
-
.melt(id_vars=['index', 'Name']).sort_values('index')\
|
11
|
+
.melt(id_vars=['index', 'Name']).sort_values('index', kind='stable')\
|
12
12
|
.drop(columns='index').reset_index(drop=True)
|
13
13
|
|
14
14
|
print(exploded_df)
|
@@ -18,8 +18,8 @@
|
|
18
18
|
# 1 青山 太郎 数学 60
|
19
19
|
# 2 青山 太郎 科学 10
|
20
20
|
# 3 黒田 一 英語 10
|
21
|
+
# 4 黒田 一 数学 30
|
21
|
-
#
|
22
|
+
# 5 黒田 一 科学 40
|
22
|
-
# 5 黒田 一 数学 30
|
23
23
|
# 6 佐藤 詩織 英語 50
|
24
24
|
# 7 佐藤 詩織 数学 60
|
25
25
|
# 8 佐藤 詩織 科学 20
|