回答編集履歴
3
test
CHANGED
@@ -12,6 +12,6 @@
|
|
12
12
|
'15JST', '16JST', '17JST', '18JST', '19JST',
|
13
13
|
'20JST', '21JST', '22JST', '23JST']
|
14
14
|
|
15
|
-
df1 = df1[x].apply(pd.to_numeric, errors='coerce')
|
15
|
+
df1[x] = df1[x].apply(pd.to_numeric, errors='coerce')
|
16
16
|
print(df1)
|
17
17
|
```
|
2
test
CHANGED
@@ -1,30 +1,17 @@
|
|
1
|
+
> `ValueError: could not convert string to float: '00JST'`
|
2
|
+
|
3
|
+
以下、`pandas.to_numeric()` を利用して `float` 型に変換しますが、数値に変換できない文字列は `NA` に置き換えられます。
|
4
|
+
|
1
5
|
```python
|
2
6
|
import pandas as pd
|
3
7
|
|
8
|
+
df1 = pd.read_csv('2017.csv', dtype = object)
|
4
9
|
x = ['00JST', '01JST', '02JST', '03JST', '04JST',
|
5
10
|
'05JST', '06JST', '07JST', '08JST', '09JST',
|
6
11
|
'10JST', '11JST', '12JST', '13JST', '14JST',
|
7
12
|
'15JST', '16JST', '17JST', '18JST', '19JST',
|
8
13
|
'20JST', '21JST', '22JST', '23JST']
|
9
|
-
df1 = pd.DataFrame({'x': x})
|
10
14
|
|
11
|
-
df1
|
15
|
+
df1 = df1[x].apply(pd.to_numeric, errors='coerce')
|
12
16
|
print(df1)
|
13
|
-
|
14
|
-
# x
|
15
|
-
# 0 0.0
|
16
|
-
# 1 1.0
|
17
|
-
# 2 2.0
|
18
|
-
# 3 3.0
|
19
|
-
# 4 4.0
|
20
|
-
# 5 5.0
|
21
|
-
# :
|
22
|
-
# :
|
23
17
|
```
|
24
|
-
|
25
|
-
`x`列の全ての要素(文字列)が「先頭2文字のみ数字」ということであれば以下でも変換可能です。
|
26
|
-
```python
|
27
|
-
df1['x'] = df1['x'].str[:2].astype(float)
|
28
|
-
```
|
29
|
-
```
|
30
|
-
|
1
test
CHANGED
@@ -22,3 +22,9 @@
|
|
22
22
|
# :
|
23
23
|
```
|
24
24
|
|
25
|
+
`x`列の全ての要素(文字列)が「先頭2文字のみ数字」ということであれば以下でも変換可能です。
|
26
|
+
```python
|
27
|
+
df1['x'] = df1['x'].str[:2].astype(float)
|
28
|
+
```
|
29
|
+
```
|
30
|
+
|