【问题标题】:Extract several values from a row when a certain value is found找到某个值时从一行中提取多个值
【发布时间】:2021-11-09 04:11:02
【问题描述】:

我有一个代码可以在不同的列中检查>= "2022-12-01" and i <= "2024-12-31 的所有日期。

我想要的是能够提取位于同一行的一些其他信息。

这些是我的专栏的标题:

EMPL. NO
NOM A L'EMPLACEMENT
ADRESSE
VILLE
PROV
OBJET NO
EMPLACEMENT DE L'APPAREIL
DESCRIPTION DE L'APPAREIL
MANUFACTURIER
DIMENSIONS
MAWP
SVP
DERNIERE INSP. EXT.
FREQ. EXT.
DERNIERE INSP. INT.
FREQ. INT.
D_EXT_1
D_INT_1
D_EXT_2
D_INT_2
D_EXT_3
D_INT_3
D_EXT_4
D_INT_4
D_EXT_5
D_INT_5
D_EXT_6
D_INT_6

我想搜索前缀为D_EXT_x 的任何列中>= "2022-12-01" and i <= "2024-12-31 之间的所有日期,并将其与D_EXT_1 之前行的所有信息一起提取。

这是我从之前提出的问题中得到的代码:

import pandas as pd
cols = [prefix + str(i) for prefix in ['D_INT_'] for i in range(1,7)]

data = pd.read_csv("dates.csv")
for col in cols:
  data.loc[:,col] = pd.to_datetime(data.loc[:,col])


ext = data[
    (
      data.loc[:,cols].ge(pd.to_datetime("2022-12-01"))\
      & data.loc[:,cols].le(pd.to_datetime("2024-12-31"))\
    ).any(axis=1)
  ]

print(ext)

问题是它没有做它应该做的事情。我的文件有 1692 行和 29 列,但输出给我的是:[1692 行 x 1715 列]。

这是原始问题: how to extract entire row when a value is found

任何帮助将不胜感激

【问题讨论】:

    标签: python


    【解决方案1】:
    # Get the rows
    rows_with_valid_date = df[after_this <= df[date_column_name] <= before_this]
    
    # Get the wanted columns
    needed_values = rows_with_valid_date[[wanted_column1, wanted_column2, etc]]
    

    您可以在需要的地方填写正确的名称。

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 2013-11-12
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2012-11-07
      • 2012-01-18
      相关资源
      最近更新 更多