简体   繁体   English

日期/时间:对于 dataframe 的每个子集,将日期时间列增加一秒

[英]date/time: increment the datetime column by one second for each subset of dataframe

creating subset of dataframe and changing the datetime column by 1 day bt not incrementing in the seconds.创建 dataframe 的子集并将日期时间列更改 1 天 bt 不以秒为单位递增。 showing one single value for each one.为每个显示一个值。 following code I had written:下面是我写的代码:

st= Timestamp('2018-06-18 07:59:20')
startDate = st

for labour in range(2):
    for trip in range(np.random.randint(5,7)):
#         np.random.seed(42)
        temp_df = redf[:3000].copy()
        temp_df['labor_id'] = labour
        
        temp_df['DateTime'] = startDate
        for i in range(len(temp_df)): 
            temp_df['DateTime'] += datetime.timedelta(seconds=1)
            
        startDate += datetime.timedelta(days=1, minutes=12, seconds = 3)
        print(temp_df['DateTime'].head(3))

# output
0   2018-06-18 08:49:20
1   2018-06-18 08:49:20
2   2018-06-18 08:49:20
Name: DateTime, dtype: datetime64[ns]
0   2018-06-19 09:01:23
1   2018-06-19 09:01:23
2   2018-06-19 09:01:23
Name: DateTime, dtype: datetime64[ns]
0   2018-06-20 09:13:26
1   2018-06-20 09:13:26
2   2018-06-20 09:13:26
Name: DateTime, dtype: datetime64[ns]
0   2018-06-21 09:25:29
1   2018-06-21 09:25:29
2   2018-06-21 09:25:29
Name: DateTime, dtype: datetime64[ns]
0   2018-06-22 09:37:32
1   2018-06-22 09:37:32
2   2018-06-22 09:37:32

It gives the single one value for each temp_df.它为每个 temp_df 提供唯一的值。 want to increment by one seconds each想每次增加一秒

Desired Output所需 Output

# output
0   2018-06-18 08:49:20
1   2018-06-18 08:49:21
2   2018-06-18 08:49:22
Name: DateTime, dtype: datetime64[ns]
0   2018-06-19 09:01:23
1   2018-06-19 09:01:24
2   2018-06-19 09:01:25
Name: DateTime, dtype: datetime64[ns]
0   2018-06-20 09:13:26
1   2018-06-20 09:13:27
2   2018-06-20 09:13:28
Name: DateTime, dtype: datetime64[ns]
0   2018-06-21 09:25:29
1   2018-06-21 09:25:30
2   2018-06-21 09:25:31
Name: DateTime, dtype: datetime64[ns]
0   2018-06-22 09:37:32
1   2018-06-22 09:37:33
2   2018-06-22 09:37:34

How to do that怎么做

You can use timedelta_range for add incremental timedeltas:您可以使用timedelta_range添加增量时间增量:

redf = pd.DataFrame({'a':range(5)})

startDate = pd.Timestamp('2018-06-18 07:59:20')


for labour in range(2):

    for trip in range(np.random.randint(5,7)):
#         np.random.seed(42)
        temp_df = redf[:3].copy()
        temp_df['labor_id'] = labour
        
        td = pd.timedelta_range('1s', periods=len(temp_df), freq='1s')
        temp_df['DateTime'] = startDate + td
            
        startDate = temp_df['DateTime'].max()
        print(temp_df['DateTime'].head(3))
        startDate += datetime.timedelta(days=1, minutes=12, seconds = 3)
---
        
14062   2018-06-18 11:45:00
14063   2018-06-18 11:45:01
14064   2018-06-18 11:45:02
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-19 15:42:45
14063   2018-06-19 15:42:46
14064   2018-06-19 15:42:47
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-20 19:40:30
14063   2018-06-20 19:40:31
14064   2018-06-20 19:40:32
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-21 23:38:15
14063   2018-06-21 23:38:16
14064   2018-06-21 23:38:17
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-23 03:36:00
14063   2018-06-23 03:36:01
14064   2018-06-23 03:36:02
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-24 07:33:45
14063   2018-06-24 07:33:46
14064   2018-06-24 07:33:47
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-25 11:31:30
14063   2018-06-25 11:31:31
14064   2018-06-25 11:31:32
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-26 15:29:15
14063   2018-06-26 15:29:16
14064   2018-06-26 15:29:17
Name: DateTime, dtype: datetime64[ns]
14062   2018-06-27 19:27:00
14063   2018-06-27 19:27:01
14064   2018-06-27 19:27:02
Name: DateTime, dtype: datetime64[ns]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从第二个 Pandas Pandas dataframe 中减去 groupby 后的一个日期时间列,每个组的时间参考 - Substract one datetime column after a groupby with a time reference for each group from a second Pandas dataframe 如何按每个指定的时间自动增加数据框列的时间并按天自动增加日期? - how to auto increment a dataframe column with time by specified time each and auto incrementing date with day? 从第二个子集中一个数据帧 - Subset one dataframe from a second Pandas:将日期和时间加入一个日期时间列 - Pandas: Join Date and Time into one datetime column 在熊猫数据框中将datetime64列拆分为日期和时间列 - Split datetime64 column into a date and time column in pandas dataframe 在第二列的每个匹配项的一个DataFrame列中查找索引 - Find indices in one DataFrame column of each match in a second column 如何将数据框的日期和时间列转换为熊猫的datetime格式? - how to convert Date and time column of dataframe to datetime format of pandas? 将熊猫数据框中的初始日期与时间列合并为日期时间 - Combine initial date with time column in a pandas dataframe as datetime 如何在 dataframe 日期时间列 pandas 中获取非连续日期时间 - how to get non continuous date time in dataframe datetime column pandas 如何在Python中将日期和经过的时间合并到一个datetime列中 - How to combine date and elapsed time into one datetime column in Python
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM