数据框中数据的遍历和操作

2024-04-26

这是对前一个问题的参考,是对该问题的扩展。

我想使用 Pandas 迭代 xlsx,包含时间戳并获取停机时间 https://stackoverflow.com/questions/60808781/i-want-to-iterate-through-an-xlsx-using-pandas-containing-timestamps-and-get-d/60811346?noredirect=1#comment107789909_60811346

所以我已经实现了一个字典,其中包含停机时间的时间戳,并以日期作为键。 但是现在出现的问题是,如果一天内有两次单独的停机时间,则不会为其提供单独的条目,而是将其附加在停机时间列表中,例如,它显示为

Timestamp('2019-10-18 00:00:00')":['00:20:00','00:30:00','00:20:00','00:40:00','05:50:00','05:60:00']

因此,为了阐明目的,我从该条目中提取第一个和最后一个元素,以获取任何特定日期的停机时间的开始和结束时间,然后给出总小时数。

我可以将它们分成两个不同的字典,我使用了这个:

df1=pd.DataFrame.from_dict(result, orient='index')
print(df)
df1=df1.fillna('0')
df1=df1.replace(to_replace =0,value ='0')
for i in df1.index:
    print(i)
    for j in range(len(df1.loc[i])-3):
        if (df1.loc[i][j+1] is not '0' and df1.loc[i][j] is not '0'):
            #the error is faced over here is, we have a total of 72 72 rows, however not all of the are filled for all the timestamps, hence they remain as  NoneType, thus need to be ignored.
            x=(datetime.datetime.strptime(df1.loc[i][j+1],"%H:%M:%S"))-(datetime.datetime.strptime(df1.loc[i][j],"%H:%M:%S"))
            if(x>datetime.timedelta(seconds=600)):
                print(df1.loc[i][j]," ",df1.loc[i][j+1])
                print(i,"fixed")
                #this gives us the complete appended dictionary with two new entries however we are missing the Date column for these
                z=list(df1.loc[i][:j])
                y=list(df1.loc[i][j+1:])
                z={i:z}
                y={i:y}
                df2=pd.DataFrame.from_dict(z, orient='index')
                df3=pd.DataFrame.from_dict(y, orient='index')
                df1=df1.drop(i)
                df1 = pd.concat([df2, df1], ignore_index=False,sort=False)
                df1 = pd.concat([df3, df1], ignore_index=False,sort=False)
                df1=df1.fillna(0)
                df1=df1.replace(to_replace ='0',value =0)
                break
        else:
            break

所以在处理之后,我得到了一个按结果名称存储的字典。 我在这之后得到的错误是:

Traceback (most recent call last):
  File "path", line 85, in <module>
    x=(datetime.datetime.strptime(df1.loc[i][j+1],"%H:%M:%S"))-(datetime.datetime.strptime(df1.loc[i][j],"%H:%M:%S"))
TypeError: strptime() argument 1 must be str, not int

正如您所看到的,我已指定 if 条件不超出非零元素,但仍然会发生此错误。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据框中数据的遍历和操作 的相关文章

  • 二进制数据的Python字符串表示

    我试图理解 Python 显示表示二进制数据的字符串的方式 这是一个使用的示例乌兰多姆操作系统 http docs python org library os html os urandom In 1 random bytes os ura
  • 如何创建毫秒粒度的 Python 时间戳?

    我需要一个自纪元以来的毫秒 ms 时间戳 这应该不难 我确信我只是缺少一些方法datetime或类似的东西 实际上微秒 s 粒度也很好 我只需要亚 1 10 秒的计时 例子 我有一个每 750 毫秒发生一次的事件 假设它检查灯是否打开或关闭
  • 用定点迭代求解该方程

    我怎样才能解这个方程 x3 x 1 0 使用定点迭代 有没有定点迭代我可以在网上找到代码 尤其是Python 吗 Using scipy optimize fixed point http docs scipy org doc scipy
  • 使用DockerOperator时如何同时使用xcom_push=True和auto_remove=True?

    Problem 跑步时DockerOperator with xcom push True xcom all True and auto remove True 任务会引发错误 就好像容器在读取其内容之前被删除一样STDOUT Exampl
  • 使用正则表达式检查整个字符串

    我正在尝试检查字符串是否是数字 因此正则表达式 d 似乎不错 然而 由于某种原因 该正则表达式也适合 78 46 92 168 8000 这是我不想要的 一些代码 class Foo rex re compile d def bar sel
  • argparse 更改参数的定义

    我按如下方式设置参数解析器 parser argparse ArgumentParser parser add argument point help enter a point e g 2 3 4 parser parse args po
  • 参数太少错误,同时未使用参数占位符

    我尝试使用 PYODBC 在 Access 数据库中执行 SQL 查询 但出现以下错误 pyodbc Error 07002 07002 Microsoft ODBC Microsoft Access 驱动程序 参数太少 预期为 1 301
  • 有效地写入 pandas 中的多个相邻列

    使用 numpy ndarray 可以一次写入多个列 而无需先进行复制 只要它们相邻 如果我想写入数组的前三列 我会写 a 0 0 3 1 2 3 this is very fast a is a numpy ndarray 我希望在 pa
  • Tkinter 按钮鼠标右键和左键单击有不同的命令

    我正在用 Python 制作扫雷游戏 并使用 tkinter 库来创建 gui 有没有 绑定到 tkinter 按钮两个命令的方法 一个是右键单击按钮时的命令 另一个是单击左键时的命令 通常 按钮仅设计用于单击 但 tkinter 允许您为
  • 如何避免在matplotlib中调用latex(输出到pgf)

    我使用 matplotlib 及其 pgf 后端来生成包含在 LaTeX 投影仪文档中的绘图 当我使用未定义的乳胶命令时 我遇到了麻烦 但对于我的应用程序 我不需要 matplotlib 来使用 Latex 生成标签或注释 我只想要正确的
  • 将 Selenium 与 PyCharm CE 结合使用

    我正在尝试将 Selenium 与 PyCharm CE 一起使用 我已经使用 pip install Selenium 安装了 Selenium 并且可以通过终端使用它 但是当我尝试将它与 PyCharm 一起使用时 出现导入错误 Imp
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • Pandas 使用什么规则来生成视图和副本?

    我对 Pandas 在决定数据帧中的选择是原始数据帧的副本或原始数据帧的视图时使用的规则感到困惑 例如 如果我有 df pd DataFrame np random randn 8 8 columns list ABCDEFGH index
  • 如何使用 SymPy 求给定一阶导数的 n 阶导数?

    Given some f and the differential equation x t f x t how do I compute x n t in terms of x t For example given f x t sin
  • 使用条件在 pandas 数据框中生成新列

    我有一个 pandas 数据框 如下所示 portion used 0 1 1 0 1 2 0 3 2 3 0 0 3 4 0 8 我想根据以下内容创建一个新专栏used列 以便df看起来像这样 portion used alert 0 1
  • 将索引数组转换为 NumPy 中的 one-hot 编码数组

    给定一个一维索引数组 a array 1 0 3 我想将其一次性编码为二维数组 b array 0 1 0 0 1 0 0 0 0 0 0 1 创建归零数组b有足够的列 即a max 1 然后 对于每一行i 设置a i 第 列 至1 gt
  • 有没有比 Python 内置 == 运算符更快的方法来测试两个列表是否具有完全相同的元素?

    如果我有两个列表 每个列表有 800 个元素长并填充整数 有没有比使用内置元件更快的方法来比较它们具有完全相同的元件 如果没有 则短路 操作员 a 6 2 3 88 54 486 b 6 2 3 88 54 486 a b gt gt gt
  • 根据条件计算平均值

    下面是我的数据框 Row ID A B 1 0 0 2 0 0 3 0 0 4 0 1 5 0 1 6 0 1 7 62 75 0 8 100 0 9 100 0 10 100 1 11 100 1 12 100 1 13 100 1 14
  • 使用 pyspark 计算所有可能的单词对

    我有一个文本文档 我需要找到整个文档中重复单词对的可能数量 例如 我有下面的word文档 该文档有两行 每行用 分隔 文档 My name is Sam My name is Sam My name is Sam My name is Sa
  • Pandas:合并多个数据框并控制列名称?

    我想将九个 Pandas 数据帧合并到一个数据帧中 对两列进行联接 控制列名称 这可能吗 我有九个数据集 它们都有以下列 org name items spend 我想将它们加入到具有以下列的单个数据框中 org name items df

随机推荐