回答編集履歴

1

説明追加

2021/02/09 08:05

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -9,3 +9,89 @@
9
9
  ```
10
10
 
11
11
  でコピーできていますが、それではできないのでしょうか。
12
+
13
+ df2がDataFrameであることは、以下の方法で確認できます。
14
+
15
+
16
+
17
+ ```python
18
+
19
+ >>> df2 = df[1:2]
20
+
21
+ >>> print(type(df2))
22
+
23
+ <class 'pandas.core.frame.DataFrame'>
24
+
25
+ >>> print(df2)
26
+
27
+ 列1 列2
28
+
29
+ gyo2 d3 d4
30
+
31
+ ```
32
+
33
+
34
+
35
+ また、df.loc["gyo2"].copyはDataFrameではなくメソッドです。
36
+
37
+ ```python
38
+
39
+ >>> print(df.loc["gyo2"].copy)
40
+
41
+ <bound method NDFrame.copy of 列1 d3
42
+
43
+ 列2 d4
44
+
45
+ Name: gyo2, dtype: object>
46
+
47
+ >>> print(type(df.loc["gyo2"].copy))
48
+
49
+ <class 'method'>
50
+
51
+ ```
52
+
53
+ df.loc["gyo2"]はDataFrameではなく、Seriesになります。
54
+
55
+ ```python
56
+
57
+ >>> print(df.loc["gyo2"])
58
+
59
+ 列1 d3
60
+
61
+ 列2 d4
62
+
63
+ Name: gyo2, dtype: object
64
+
65
+ >>> print(type(df.loc["gyo2"]))
66
+
67
+ <class 'pandas.core.series.Series'>
68
+
69
+ ```
70
+
71
+ これをDataFrameに変換することはできますが、求めるものとは少し違います。
72
+
73
+ ```python
74
+
75
+ >>> print(pd.DataFrame(df.loc["gyo2"]))
76
+
77
+ gyo2
78
+
79
+ 列1 d3
80
+
81
+ 列2 d4
82
+
83
+ ```
84
+
85
+ 縦横が逆になっていますので、逆転してみましょう。
86
+
87
+ ```python
88
+
89
+ >>> print(pd.DataFrame(df.loc["gyo2"]).T)
90
+
91
+ 列1 列2
92
+
93
+ gyo2 d3 d4
94
+
95
+ ```
96
+
97
+ これでも出来ましたが、df2 = df[1:2]の方が簡単ですね。