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

回答編集履歴

3

Update

2021/12/02 09:38

投稿

melian
melian

スコア21430

answer CHANGED
@@ -1,14 +1,8 @@
1
- `2'40.24` というのは 2分40秒240ミリセカンドの事かと思います。`errors='coerce'` を指定する事で、スに失敗した場合は `NaT` に変換されます。
1
+ `2'40.24` というのは 2分40秒240ミリセカンドの事かと思います。データには `NaN` が含まれていとの事ですので以下のコドでは `NaN` を `00:00:00` に変換する様にしています。
2
+
2
3
  ```python
3
- dfx = df.applymap(lambda x:
4
+ df["column_c"] = df["column_c"].apply(lambda x:
4
- pd.to_datetime(str(x),
5
+ pd.to_datetime("0.0" if str(x) == "nan" else str(x),
5
- format=("%S.%f" if isinstance(x, float) else "%M'%S.%f"),
6
+ format=("%M'%S.%f" if "'" in str(x) else "%S.%f"),
6
7
  errors='coerce').time())
7
-
8
- print(dfx)
9
-
10
- #
11
- a b c
12
- 0 00:02:40.240000 00:00:46.320000 00:01:56.660000
13
- 1 00:02:00.760000 00:00:20.640000 00:00:49.330000
14
8
  ```

2

Update

2021/12/02 09:38

投稿

melian
melian

スコア21430

answer CHANGED
@@ -1,11 +1,11 @@
1
1
  `2'40.24` というのは 2分40秒240ミリセカンドの事かと思います。`errors='coerce'` を指定する事で、パースに失敗した場合は `NaT` に変換されます。
2
2
  ```python
3
- df.applymap(lambda x:
3
+ dfx = df.applymap(lambda x:
4
4
  pd.to_datetime(str(x),
5
5
  format=("%S.%f" if isinstance(x, float) else "%M'%S.%f"),
6
6
  errors='coerce').time())
7
7
 
8
- print(df)
8
+ print(dfx)
9
9
 
10
10
  #
11
11
  a b c

1

Update

2021/12/02 07:51

投稿

melian
melian

スコア21430

answer CHANGED
@@ -1,13 +1,14 @@
1
- `2'40.24` というのは 2分40秒240ミリセカンドの事かと思います。以下では`errors='coerce'` を指定する事で、パースに失敗した場合は `NaT` に変換されます。
1
+ `2'40.24` というのは 2分40秒240ミリセカンドの事かと思います。`errors='coerce'` を指定する事で、パースに失敗した場合は `NaT` に変換されます。
2
-
3
2
  ```python
3
+ df.applymap(lambda x:
4
+ pd.to_datetime(str(x),
4
- df['a'] = pd.to_datetime(df['a'], format="%M'%S.%f", errors='coerce').dt.time
5
+ format=("%S.%f" if isinstance(x, float) else "%M'%S.%f"),
5
- df['c'] = pd.to_datetime(df['c'], format="%M'%S.%f", errors='coerce').dt.time
6
+ errors='coerce').time())
6
7
 
7
8
  print(df)
8
9
 
9
10
  #
10
- a b c
11
+ a b c
11
- 0 00:02:40.240000 46.32 00:01:56.660000
12
+ 0 00:02:40.240000 00:00:46.320000 00:01:56.660000
12
- 1 00:02:00.760000 20.64 NaT
13
+ 1 00:02:00.760000 00:00:20.640000 00:00:49.330000
13
14
  ```