如何在python的datetime列填充空值?



样本数据:

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
  1. 如何在datetime列中填充Nan值?

  2. 需要考虑城市

    在datetime中填充空值。

从示例中获取孟买的From city和datetime,并为孟买填充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)
  1. 获取城市和日期时间,并删除所有带有nan值的行
  2. 将其转换为字典以创建下一个字典元素
  3. 创建以city为键,datetime为值的查找字典
  4. 遍历所有行并检查Datetime是否必须被替换
  5. 将结果序列/列表分配给目标列。

最新更新