Удалить элемент из списка в pandas - PullRequest
0 голосов
/ 28 мая 2020

как я могу удалить элемент под названием «отопление» из списка, который используется для сравнения значений c в 2 разных столбцах Excel через pandas. Поскольку мне нужен элемент для другого сравнения, я хочу исключить / удалить его только для этого c сравнения.

from Attribute import unit
import pandas as pd
from pathlib import Path

# EXCEL DATA FRAME
fn = list(Path("C:\Compat\IN").glob("*.xlsx"))[0]
df_excel = pd.read_excel(fn, sheet_name="TriCad_Format")

# Attribute DATA FRAME with
# this dataframe is a list of lists and looks like that:
# units = [
#    ['reserve', 'TMYYY'],
#    ['heating', 'TM601'],
#    ['cooling', 'TM602']
#]
df_unit = pd.DataFrame(unit, columns=['Medium', 'machine'])

# Compare values
search_list_unit = df_unit['Medium'].unique().tolist()
match_units = df_excel[((df_excel["DBA03"].str.contains("|".join(search_list_unit), regex=True)) &
                         (~df_excel["DBA16"].isin(df_unit["machine"].tolist())))]

Кто-нибудь может мне помочь? Спасибо!

1 Ответ

1 голос
/ 28 мая 2020

Вместо того, чтобы удалять подсписок, содержащий 'heating', из вашего списка units, проще создать второй фрейм данных, выбрав строки, столбец Medium которых отличается от 'heating':

df_unit_without_heating = df_unit.loc[df_unit['Medium'] != 'heating']
print(df_unit_without_heating)

вывод:

    Medium machine
0  reserve   TMYYY
2  cooling   TM602
...