Доступ Python к строковому значению в iterrows фрейма данных и проверка, содержит ли оно определенное значение, возвращает общую ошибку

#python #pandas

#python #pandas

Вопрос:

Я пытаюсь получить доступ к строковому значению df.loc[idx, "GDP"] , но в другом вызываемом поле Quarter .

Итак, пока я нахожусь внутри df.loc[idx, "GDP"] , и чтобы проверить, Quarter связана ли строка с df.loc[idx, "GDP"] содержанием 2008 . Я попробовал следующее:

 for idx, gdp in df.iterrows():
        if df.loc[idx, df['Quarter'].str[0:4]]==2008 and (idx<=length-2) and (df.loc[idx, "GDP"]>df.loc[idx 1, "GDP"]>df.loc[idx 2, "GDP"]):
            listOfQuarters.append({"GDP": df.loc[idx 1, "GDP"], "Quarter": df.loc[idx 1, "Quarter"]})
            print(df.loc[idx, df[ 'Quarter'].str[0:4])
  

Добавление следующей строки df.loc[idx, df['Quarter'].str[0:4]==2008 вызвало общую ошибку без указания, о чем идет речь.

PS Я знаю, что хорошей практикой является перебор фреймов данных таким образом, но общее количество строк равно 66, так что пока все в порядке.

Комментарии:

1. Можете ли вы включить некоторый пример ввода вместе с ожидаемым результатом.

2. Вам следует просмотреть раздел о логической индексации … если вы ставите запятую внутри .loc , то pandas оценивает все, что после этого, как индексатор столбца… попробуйте df[(df.index==idx) amp; (cond2) amp; ...]

3. И это всего лишь дубликат вашего предыдущего вопроса с сегодняшнего дня…