首页 > 解决方案 > 仅在 Dataframe Pandas 中添加带有时间的新列

问题描述

所以我有这个从网站上抓取的数据框。我想要实现的是添加一个新列,其中只有时间作为 HH:mm 每次它抓取新数据时。但是我使用的代码给出了数据和时间

import pandas as pd 

data = {'Name':['Tom', 'nick', 'krish', 'jack','Rick', 'John'],
        'Age':[20, 21, 19, 18, 26, 23]}
df = pd.DataFrame(data) 
  
df['time'] = pd.date_range('11/5/2020', periods = 6, freq ='2H')  
df 

我拥有的数据:

    Name    Age               time
0   Tom     20  2020-11-05 01:00:00
1   nick    21  2020-11-05 01:00:00
2   krish   19  2020-11-05 01:00:00
3   jack    18  2020-11-05 01:00:00
4   Rick    26  2020-11-05 01:00:00
5   John    23  2020-11-05 01:00:00

我想要的结果

    Name    Age       time
0   Tom     20       01:00
1   nick    21       01:00
2   krish   19       01:00
3   jack    18       01:00
4   Rick    26       01:00
5   John    23       01:00

由于数据每 15 分钟被抓取一次,我想将新数据随时间附加到它,而无需再次添加标题,如下所示:

    Name    Age       time
0   Tom     20       01:00
1   nick    21       01:00
2   krish   19       01:00
3   jack    18       01:00
4   Rick    26       01:00
5   John    23       01:00
0   Tom     20       01:15
1   nick    21       01:15
2   krish   19       01:15
3   jack    18       01:15
4   Rick    26       01:15
5   John    23       01:15

标签: pythonpandas

解决方案


如果我理解正确,这就是您想要的。

lst_date_range = pd.date_range('11/5/2020', periods = 6, freq ='2H')
df['time'] = [date_time.strftime("%H:%M") for date_time in lst_date_range]

通过使用.strftime("%H:%M")可以只选择小时和分钟。

    Name    Age               time
0   Tom     20  2020-11-05 01:00:00

    Name    Age       time
0   Tom     20       01:00

但我不明白你要求附加什么而不需要添加标题,如果你需要帮助,请在这里解释更多。


推荐阅读