如何在 python 的日期时间列中填充空值?
How to fill null value in datetime column in python?
示例数据:
EmployeeId city Datetime
0 001 Mumbai 2015-12-11
1 001 Bangalore 2016-02-15
2 002 Pune 2016-01-26
3 002 Mumbai NaN
4 003 Delhi 2015-04-29
5 003 Mumbai NaN
6 004 Bangalore NaN
7 004 Pune 2016-01-25
8 005 Mumbai 2015-12-13
预期输出:
EmployeeId city Datetime
0 001 Mumbai 2015-12-11
1 001 Bangalore 2016-02-15
2 002 Pune 2016-01-26
3 002 Mumbai 2015-12-16
4 003 Delhi 2015-04-29
5 003 Mumbai 2015-12-13
6 004 Bangalore 2016-01-17
7 004 Pune 2016-01-25
8 005 Mumbai 2015-12-13
如何在日期时间列中填写 Nan 值?
需要考虑 City 列来填充 datetime 中的空值。
从示例中获取孟买的起始城市和日期时间并填充孟买的日期时间空值。
其他城市也一样。
我们该怎么做?
您可以执行以下操作:
pairs = data[["city", "Datetime"]].dropna().to_dict()
fill_values = dict(zip(pairs['city'].values(), pairs['Datetime'].values()))
data.Datetime = data.apply(lambda d: fill_values[d.city] if d.Datetime is np.nan else d.Datetime, axis=1)
print(data)
- 获取城市和日期时间并删除所有具有 nan 值的行。
- 将其转换为字典以创建下一个字典元素。
- 创建以城市为键、以日期时间为值的查找字典。
- 遍历所有行并检查是否必须替换日期时间。
- 将生成的 series/list 分配给目标列。
示例数据:
EmployeeId city Datetime
0 001 Mumbai 2015-12-11
1 001 Bangalore 2016-02-15
2 002 Pune 2016-01-26
3 002 Mumbai NaN
4 003 Delhi 2015-04-29
5 003 Mumbai NaN
6 004 Bangalore NaN
7 004 Pune 2016-01-25
8 005 Mumbai 2015-12-13
预期输出:
EmployeeId city Datetime
0 001 Mumbai 2015-12-11
1 001 Bangalore 2016-02-15
2 002 Pune 2016-01-26
3 002 Mumbai 2015-12-16
4 003 Delhi 2015-04-29
5 003 Mumbai 2015-12-13
6 004 Bangalore 2016-01-17
7 004 Pune 2016-01-25
8 005 Mumbai 2015-12-13
如何在日期时间列中填写 Nan 值?
需要考虑 City 列来填充 datetime 中的空值。
从示例中获取孟买的起始城市和日期时间并填充孟买的日期时间空值。 其他城市也一样。
我们该怎么做?
您可以执行以下操作:
pairs = data[["city", "Datetime"]].dropna().to_dict()
fill_values = dict(zip(pairs['city'].values(), pairs['Datetime'].values()))
data.Datetime = data.apply(lambda d: fill_values[d.city] if d.Datetime is np.nan else d.Datetime, axis=1)
print(data)
- 获取城市和日期时间并删除所有具有 nan 值的行。
- 将其转换为字典以创建下一个字典元素。
- 创建以城市为键、以日期时间为值的查找字典。
- 遍历所有行并检查是否必须替换日期时间。
- 将生成的 series/list 分配给目标列。