#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. И это всего лишь дубликат вашего предыдущего вопроса с сегодняшнего дня…