I can't access dataframe fields

Markos markos at c2o.pro.br
Mon Feb 17 13:41:39 EST 2020


Hi MRAB,

I changed last_cluster to tuple(last_cluster).

From:

print (updated_distance_matrix_df.loc [clusters [i], last_cluster])

to

print (updated_distance_matrix_df.loc [clusters [i], tuple(last_cluster)])

And worked.

Thank you,

Markos


Em 15-02-2020 23:36, MRAB escreveu:
> On 2020-02-16 00:50, Markos wrote:
>> Hi all,
>>
>> I created the following data frame (updated_distance_matrix)
>>
>>        P1            P2            P4            P5 (P3, P6)
>> P1 0,000000 0,244307 0,367696 0,341760 0
>> P2 0.234307 0.000000 0.194165 0.1443178 0
>> P4 0.366969 0.194165 0.000000 0.284253 0
>> P5 0.341760 0.1443178 0.284253 0.000000 0
>> (P3, P6) 0.000000 0.000000 0.000000 0.000000 0
>>
>> I can change the fields of columns and rows P1-P5 without problems.
>>
>> But when I try to access the fields of the row, or column, (P3, P6)
>>
>> print (updated_distance_matrix_df.loc [clusters [i], last_cluster])
>>
>> the message appears:
>>
>> KeyError: 'the label [P3, P6] is not in the [index]'
>>
> The rows and columns have "(P3, P6)", but you're looking for "[P3, 
> P6]". They aren't the same.
>
>> If I change find the "loc" by "at" method appears the error:
>>
>> print (updated_distance_matrix_df.at [clusters [i], last_cluster])
>>
>> TypeError: unhashable type: 'list'
>>
> Is it expecting a tuple instead of a list? Tuples are hashable, lists 
> are not.
>
>> And if you simply leave:
>>
>> print (updated_distance_matrix_df [clusters [i], last_cluster])
>>
>> gives the error:
>>
>> TypeError: unhashable type: 'list'
>>
>> A last_cluster variable is of type list:
>>
>> print (last_cluster, type (last_cluster))
>>
>> ['P3', 'P6'] <class 'list'>
>>
>> And a variable cluster [i] is a string:
>>
>> print (clusters [i], type (clusters [i]))
>>
>> P5 <class 'str'>
>>
>> Any tip?
>>
>> Thank you,
>>



More information about the Python-list mailing list