Прочитайте предыдущие и следующие две строки из определенного индекса везде, где выполняются условия из кадра данных panPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Прочитайте предыдущие и следующие две строки из определенного индекса везде, где выполняются условия из кадра данных pan

Сообщение Anonymous »

Я ищу решение для чтения двух предыдущих строк, где C_1=104, и следующих двух строк, где C_1=105, также включает эти две строки. Ниже приведены различные входные данные.
Проблема, с которой я столкнулся:
Cond 1 - иногда C_1=104 является первой строкой (см. df2) в кадре данных, чтобы не было предыдущих строк.
Cond 2 – иногда C_1=104 отсутствует, но C_1=105 — это первая строка (см. df3).Cond 3 — иногда Cond-1 и 2 могут быть другими, что означает, что C_1=105 может быть последней строкой (см. df4) ИЛИ C_1=104, можем ли мы быть последними (C_1=105 там не будет).< /p>
df1 = pd.read_csv(StringIO("""
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:50" 101 128 89 4
"18/06/2023 3:51:52" 102 128 61 4
"18/06/2023 3:51:53" 103 130 65 0
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0
"18/06/2023 3:51:56" 108 112 89 0
"18/06/2023 3:51:57" 109 109 90 0
"""), sep="\s+")

Вывод df-1-
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:52" 102 128 61 4
"18/06/2023 3:51:53" 103 130 65 0
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0

df2 = pd.read_csv(StringIO("""
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0
"18/06/2023 3:51:56" 108 112 89 0
"18/06/2023 3:51:57" 109 109 90 0
"""), sep="\s+")

Вывод df-2-
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0

df3 = pd.read_csv(StringIO("""
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0
"18/06/2023 3:51:56" 108 112 89 0
"18/06/2023 3:51:57" 109 109 90 0
"""), sep="\s+")

Вывод df-3-
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:54" 105 134 66 2
"18/06/2023 3:51:55" 106 134 89 0
"18/06/2023 3:51:56" 107 156 77 0

df4 = pd.read_csv(StringIO("""
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:50" 101 128 89 4
"18/06/2023 3:51:52" 102 128 61 4
"18/06/2023 3:51:53" 103 130 65 0
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2
"""), sep="\s+")

Вывод df-4-
datetime C_1 C_2 C_3 C_4
"18/06/2023 3:51:52" 102 128 61 4
"18/06/2023 3:51:53" 103 130 65 0
"18/06/2023 3:51:53" 104 132 89 0
"18/06/2023 3:51:54" 105 134 66 2

Я нашел решение и все еще ищу лучший способ его достижения -
idx1 = df1[(df1['C_1'] == 104) & (df1['C_2'] == 132)].index
idx2 = df1[(df1['C_1'] == 105) & (df1['C_2'] == 134)].index
df_1 = pd.DataFrame()
df_2 = pd.DataFrame()
if idx1.size != 0:
df_1 = df1.loc[idx1[0]-2:idx1[0], :]
if idx2.size != 0:
df_2 = df1.loc[idx2[0]:idx2[0]+2, :]

df_merged = pd.concat([df_1, df_2], ignore_index=True).sort_values(by='datetime')


Подробнее здесь: https://stackoverflow.com/questions/786 ... ons-are-me
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Jekyll - Следующие и предыдущие ссылки с разными категориями
    Anonymous » » в форуме Html
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Нужны предыдущие/следующие стрелки в виджете Ementor
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Прочитайте фрейм данных pandas, используя пропуски, и превратите две строки в заголовки столбцов
    Anonymous » » в форуме Python
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • Две разные идеи – две разные проблемы. Прозрачный фон работает = поддержка кликов не работает. Как объединить эти две ид
    Anonymous » » в форуме C#
    0 Ответы
    94 Просмотры
    Последнее сообщение Anonymous
  • Предыдущие условия соответствия символов
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»