python循环控制间隔。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python循环控制间隔。相关的知识,希望对你有一定的参考价值。

如何使一个循环里同时进行两个计数。
使一个计数每隔1秒进行一次第二个每隔2秒计数一次。
比如每隔1秒打印一次 '百度。'每隔2秒打印一次 '谷歌。'
在同一个循环里,运行两秒打印两次 '百度'和一次'谷歌'
要如何实现。

按最小时间间隔循环,假设循环中计数是count,那么 count%2==0这个条件就每两秒满足一次了。
count%n==0就是每n个最小间隔满足一次
参考技术A # -*- coding: cp936 -*-
import time
a=1
while 1:
    if a==2:
        print "百度"
        print "谷歌\\n\\n\\n\\n"
        a=1
        time.sleep(1)
    if a!=2:
        print "百度"
        a+=1
        time.sleep(1)

本回答被提问者采纳

在 Python 中的循环内创建列

【中文标题】在 Python 中的循环内创建列【英文标题】:Creating Columns Inside Loops In Python 【发布时间】:2021-07-12 13:04:40 【问题描述】:

我正在运行以下命令,在循环中创建名为 NEW_DATE 的新列。 我想为每一行,循环计算一个间隔,然后将该间隔与DATE相加,结果存储在NEW_DATE中。

数据框如下所示:

    DATE        INFO
0   2021-01-22  0.375
1   2020-12-04  0.125
2   2021-01-01  0.500
3   2020-12-24  0.375
4   2020-12-10  0.125

代码是这样的:

df['DATE'] = pd.to_datetime(df['DATE'], format='%Y%m%d')

for index, row in df.iterrows():
    c1 = df['INFO'][index]
    print(c1)
    
    c3 = datetime.timedelta((1/c1)*5)
    print(c3)

    c2 = df['DATE'][index]
    print(c2)   
    
    df['NEW_DATE'][index] = c2 + c3
    print(df['NEW_DATE'][index], '\n')

目前我收到以下错误: KeyError: 'NEW_DATE'

如果我删除 write df['NEW_DATE'][index] = c2 + c3,代码会运行,但存储在 NEW_DATE 中的值不正确,因为它们与打印的不同。

我该如何做我上面描述的事情?我走对了吗?

【问题讨论】:

看起来您需要在尝试为每一行设置值之前将NEW_DATE 列添加到您的数据框中。您可以搜索“pandas add column to dataframe”以了解几种方法。 【参考方案1】:

如果您想坚持该解决方案,请先在 for 循环之前创建空列,例如:

df['NEW_DATE'] = np.nan
# for loop ...

要分配值,您可能需要使用 loc

df.loc[index, 'NEW_DATE'] = c2 + c3

一般来说itterrows()很慢,一般这类问题应该用向量化的方法解决:

df['NEW_DATE'] = df['DATE'] + pd.to_timedelta((1/df['INFO'])*5, unit='D')

【讨论】:

我了解矢量化方法,但是当我运行这两种方法时,NEW_DATE 列值在 itterrows() 的方法上是正确的,而在矢量化方法上是错误的。不知道为什么会这样。就像 c3 必须以天为单位(而不是日期)一样,不确定在矢量化中是否对 c2 的天数求和。你知道如何在矢量化中做到这一点吗? datetime.timedelta 接收第一个参数为天,pd.to_timedelta 默认使用纳秒。使用参数 unit 检查编辑【参考方案2】:

您收到此错误,因为该列不存在。你需要在循环之前创建它

df['NEW_DATE'] = np.nan

【讨论】:

以上是关于python循环控制间隔。的主要内容,如果未能解决你的问题,请参考以下文章

Python流程控制-3 循环控制

22:python中的循环控制语句

python的控制结构之ForWhileIf循环问题

[Python3]循环控制

Python学习————流程控制之for循环

Python条件控制语句与循环控制语句