【问题标题】:Pandas Iterate over a DataFrame to get the values from columns according to conditions and put them in a new DataFramePandas 遍历 DataFrame 以根据条件从列中获取值并将它们放入新的 DataFrame
【发布时间】:2022-11-01 22:07:26
【问题描述】:

以下是我的 DataFrame 中的一些行,组成如下:

Index ['TimeStamp'] ['ThreadID'] ['Start|End'] ['StepIdentifier']
1017 18:44:22,997 [12] Start FetchMasterData
1018 18:44:22,997 [12] Start GetSmrCalculatedMeterData
1020 18:44:22,997 [12] End GetSmrCalculatedMeterData
1021 18:44:22,997 [12] Start GetSmrPhysicalMeterData
1023 18:44:23,013 [12] End GetSmrPhysicalMeterData
1024 18:44:23,013 [12] Start GetSmrMarketDeliveryPointData
1026 18:44:23,013 [12] End GetSmrMarketDeliveryPointData
1027 18:44:23,013 [12] Start GetSmrMarketHeadpointData
1029 18:44:23,013 [12] End GetSmrMarketHeadpointData
1030 18:44:23,013 [12] End FetchMasterData

我需要为每个线程获取每个进程的开始和结束时间。 我们可以看到,进程(如 FetchMasterData)的“开始”和“结束”不一定相互跟随。

然后像这样创建一个新的DataFrame:

['ThreadID'] ['StepIdentifier'] ['Start'] ['End']
    [12]      FetchMasterData  18:44:22,997 18:44:23,013

最后计算每个过程的操作开始和结束之间的时间(仅供您参考)

有人对如何通过 DataFrame 获取这些数据并将它们放入新的 DataFrame 有任何线索吗?我想 - 并尝试 - 使用双 for 循环在数据帧中迭代,但这似乎不是在数据帧中迭代的好方法。感谢大家 !

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    你试过 iterrows 吗?

    data = []
    
    for index, row in df.iterrows():
        data.append({
          "ThreadID" : row["ThreadID"],
          "StepIdentifier" : row["StepIdentified"],
          "Start|End" : row["Start|End"],
          "TimeStamp" : row["TimeStamp"]
        })
    
    print(data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-11
      • 2021-02-01
      • 2022-01-08
      • 1970-01-01
      • 2014-10-17
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多