Python:将列中的 "NA" 替换为另一列对应行值的值(反之亦然)
Python: replace "NA" in column with value from corresponding row value of another column (and vice versa)
我有以下数据框:
RawTimes_df =
ETime XTime
0 2018-05-21 04:48:22 2018-05-21 05:52:45
1 2018-05-21 02:18:20 2018-05-21 03:19:53
2 2018-05-21 11:02:31 2018-05-21 12:17:57
3 2018-05-21 06:08:15 2018-05-21 07:08:12
4 NA 2018-05-21 16:14:16
5 2018-05-21 03:38:12 2018-05-21 04:39:05
6 2018-05-21 17:43:06 2018-05-21 18:59:38
7 2018-05-21 08:52:32 NA
8 2018-05-21 02:27:44 2018-05-21 03:33:08
9 2018-05-21 12:01:12 NA
10 2018-05-21 10:21:10 2018-05-21 11:26:45
11 NA 2018-05-21 21:27:38
12 2018-05-21 18:02:19 2018-05-21 19:07:31
13 2018-05-21 05:07:28 2018-05-21 06:07:51
14 NA 2018-05-21 13:10:22
15 2018-05-21 11:05:19 2018-05-21 12:17:31
16 2018-05-21 02:27:08 2018-05-21 03:33:54
17 2018-05-21 02:12:01 2018-05-21 03:18:11
18 2018-05-21 11:07:23 2018-05-21 12:21:30
19 2018-05-21 12:31:53 NA
20 2018-05-21 06:19:52 NA
我正在尝试用另一列中的相应值替换 "NA" 的条目。因此,对于第 4 行,我希望 ETime 与相关的第 4 行 XTime“2018-05-21 16:14:16”相同,然后第 9 行 XTime 为“2018-05-21 12:01:12”等。 ..
期望的输出:
ETime XTime
0 2018-05-21 04:48:22 2018-05-21 05:52:45
1 2018-05-21 02:18:20 2018-05-21 03:19:53
2 2018-05-21 11:02:31 2018-05-21 12:17:57
3 2018-05-21 06:08:15 2018-05-21 07:08:12
4 2018-05-21 16:14:16 2018-05-21 16:14:16
5 2018-05-21 03:38:12 2018-05-21 04:39:05
6 2018-05-21 17:43:06 2018-05-21 18:59:38
7 2018-05-21 08:52:32 2018-05-21 08:52:32
8 2018-05-21 02:27:44 2018-05-21 03:33:08
9 2018-05-21 12:01:12 2018-05-21 12:01:12
10 2018-05-21 10:21:10 2018-05-21 11:26:45
11 2018-05-21 21:27:38 2018-05-21 21:27:38
12 2018-05-21 18:02:19 2018-05-21 19:07:31
13 2018-05-21 05:07:28 2018-05-21 06:07:51
14 2018-05-21 13:10:22 2018-05-21 13:10:22
15 2018-05-21 11:05:19 2018-05-21 12:17:31
16 2018-05-21 02:27:08 2018-05-21 03:33:54
17 2018-05-21 02:12:01 2018-05-21 03:18:11
18 2018-05-21 11:07:23 2018-05-21 12:21:30
19 2018-05-21 12:31:53 2018-05-21 12:31:53
20 2018-05-21 06:19:52 2018-05-21 06:19:52
我已经尝试编写一个函数来尝试用另一列中的值替换 NA 值,但我正在努力让它对两列都起作用。
使用fillna
df.ETime.fillna(df.XTime,inplace=True)
df.XTime.fillna(df.ETime,inplace=True)
我有以下数据框:
RawTimes_df =
ETime XTime
0 2018-05-21 04:48:22 2018-05-21 05:52:45
1 2018-05-21 02:18:20 2018-05-21 03:19:53
2 2018-05-21 11:02:31 2018-05-21 12:17:57
3 2018-05-21 06:08:15 2018-05-21 07:08:12
4 NA 2018-05-21 16:14:16
5 2018-05-21 03:38:12 2018-05-21 04:39:05
6 2018-05-21 17:43:06 2018-05-21 18:59:38
7 2018-05-21 08:52:32 NA
8 2018-05-21 02:27:44 2018-05-21 03:33:08
9 2018-05-21 12:01:12 NA
10 2018-05-21 10:21:10 2018-05-21 11:26:45
11 NA 2018-05-21 21:27:38
12 2018-05-21 18:02:19 2018-05-21 19:07:31
13 2018-05-21 05:07:28 2018-05-21 06:07:51
14 NA 2018-05-21 13:10:22
15 2018-05-21 11:05:19 2018-05-21 12:17:31
16 2018-05-21 02:27:08 2018-05-21 03:33:54
17 2018-05-21 02:12:01 2018-05-21 03:18:11
18 2018-05-21 11:07:23 2018-05-21 12:21:30
19 2018-05-21 12:31:53 NA
20 2018-05-21 06:19:52 NA
我正在尝试用另一列中的相应值替换 "NA" 的条目。因此,对于第 4 行,我希望 ETime 与相关的第 4 行 XTime“2018-05-21 16:14:16”相同,然后第 9 行 XTime 为“2018-05-21 12:01:12”等。 ..
期望的输出:
ETime XTime
0 2018-05-21 04:48:22 2018-05-21 05:52:45
1 2018-05-21 02:18:20 2018-05-21 03:19:53
2 2018-05-21 11:02:31 2018-05-21 12:17:57
3 2018-05-21 06:08:15 2018-05-21 07:08:12
4 2018-05-21 16:14:16 2018-05-21 16:14:16
5 2018-05-21 03:38:12 2018-05-21 04:39:05
6 2018-05-21 17:43:06 2018-05-21 18:59:38
7 2018-05-21 08:52:32 2018-05-21 08:52:32
8 2018-05-21 02:27:44 2018-05-21 03:33:08
9 2018-05-21 12:01:12 2018-05-21 12:01:12
10 2018-05-21 10:21:10 2018-05-21 11:26:45
11 2018-05-21 21:27:38 2018-05-21 21:27:38
12 2018-05-21 18:02:19 2018-05-21 19:07:31
13 2018-05-21 05:07:28 2018-05-21 06:07:51
14 2018-05-21 13:10:22 2018-05-21 13:10:22
15 2018-05-21 11:05:19 2018-05-21 12:17:31
16 2018-05-21 02:27:08 2018-05-21 03:33:54
17 2018-05-21 02:12:01 2018-05-21 03:18:11
18 2018-05-21 11:07:23 2018-05-21 12:21:30
19 2018-05-21 12:31:53 2018-05-21 12:31:53
20 2018-05-21 06:19:52 2018-05-21 06:19:52
我已经尝试编写一个函数来尝试用另一列中的值替换 NA 值,但我正在努力让它对两列都起作用。
使用fillna
df.ETime.fillna(df.XTime,inplace=True)
df.XTime.fillna(df.ETime,inplace=True)