Pandas dataframfe TypeError: есть ли проблема с индексированием с использованием int? - PullRequest
0 голосов
/ 05 января 2020

Для следующего кода:

1_df = pd.read_csv("1.csv")
2_df = pd.read_csv("2.csv")
3_df = pd.read_csv("3.csv")

GT_df = pd.DataFrame(columns = {'text', 'labelsum', 'label_value'})
row_count = 0

for x in range(1_df.shape[0]):
    if 1_df.iloc[x,3] + 2_df.iloc[x,3] + 3_df.iloc[x,3] == 0:
        GT_df.loc[row_count,0]=1_df.loc[x,0]
        GT_df.iloc[row_count,1]=1_df.iloc[x,2] + 2_df.iloc[x,2] + 3_df.iloc[x,2]
        if GT_df.iloc[row_count,1]>1:
            GT_df.iloc[row_count,2]=1
        else: 
            GT_df.iloc[row_count,2]=0
        GT_row_count +=1

print(GT_df)

Я получаю следующую ошибку:

TypeError: не могу выполнить индексацию метки для класса 'pandas .core.indexes.base .Index 'с этими индексаторами [0] класса' int '

Есть идеи, в чем причина?

Заранее спасибо!

1 Ответ

0 голосов
/ 05 января 2020

iloc и loc имеют небольшие различия. Если вы собираетесь использовать позиции для индексации, тогда используйте iloc, а если вы собираетесь использовать имена столбцов или условия для индексации, тогда используйте loc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...