回答編集履歴
1
NaNに対応
test
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
data = data.applymap(lambda x: tuple(np.array(x).astype(np.float)))
|
59
|
+
data = data.applymap(lambda x: tuple(np.array(x).astype(np.float)) if np.array(x).ndim != 0 else x)
|
60
60
|
|
61
61
|
print(data)
|
62
62
|
|
@@ -64,19 +64,21 @@
|
|
64
64
|
|
65
65
|
A B C D E
|
66
66
|
|
67
|
-
0 (517.5, 669.5) (106.0, 462.0) (396.0, 362.5) (646.5, 377.0)
|
67
|
+
0 (517.5, 669.5) (106.0, 462.0) (396.0, 362.5) (646.5, 377.0) NaN
|
68
68
|
|
69
69
|
1 (516.5, 666.0) (106.0, 458.5) (386.5, 362.5) (654.5, 378.0) (36.5, 459.5)
|
70
70
|
|
71
|
-
2 (506.5, 660.0) (107.0, 454.0) (654.5, 393.0) (386.5, 369.0)
|
71
|
+
2 (506.5, 660.0) (107.0, 454.0) (654.5, 393.0) (386.5, 369.0) NaN
|
72
72
|
|
73
|
-
3 (508.0, 661.5) (106.0, 452.5) (380.5, 361.0) (653.0, 394.0)
|
73
|
+
3 (508.0, 661.5) (106.0, 452.5) (380.5, 361.0) (653.0, 394.0) NaN
|
74
74
|
|
75
|
-
4 (510.0, 663.0) (106.5, 454.0) (649.5, 388.5) (380.5, 364.0)
|
75
|
+
4 (510.0, 663.0) (106.5, 454.0) (649.5, 388.5) (380.5, 364.0) NaN
|
76
76
|
|
77
|
-
5 (107.0, 456.0) (650.5, 390.5) (510.5, 661.5) (383.0, 365.5)
|
77
|
+
5 (107.0, 456.0) (650.5, 390.5) (510.5, 661.5) (383.0, 365.5) NaN
|
78
78
|
|
79
79
|
"""
|
80
|
+
|
81
|
+
|
80
82
|
|
81
83
|
|
82
84
|
|
@@ -89,3 +91,19 @@
|
|
89
91
|
"""
|
90
92
|
|
91
93
|
```
|
94
|
+
|
95
|
+
---
|
96
|
+
|
97
|
+
私の当初環境ではE列にスペースが入っていたため、NaNが混入していなかったみたいです。
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
スペースを消してNaNを混入した状態に対応してみました。
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
データが入っていれば`data.?.str.split()`によって1次元配列ができています。
|
106
|
+
|
107
|
+
NaNの場合は1次元配列にならずそのままデータが残ります。
|
108
|
+
|
109
|
+
それを`np.array(x).ndim != 0`で見分けます。NaNを別の値にしたい場合は最後のxを別の式に置き換えてください。
|