sort_values ​​() получил неожиданный аргумент ключевого слова «by» - PullRequest
0 голосов
/ 05 июня 2018
for i in str_list:   #str_list is a set contain some strings 
    df.loc[i].sort_values(by = 'XXX')
**TypeError**: sort_values() got an unexpected keyword argument 'by' ".
>>> type(df.loc[i])
>>> pandas.core.frame.DataFrame

Но это работает вне цикла for!

df.loc['string'].sort_values(by = 'XXX')
>>> type(df.loc['string'])
>>> pandas.core.frame.DataFrame

Я в замешательстве.

1 Ответ

0 голосов
/ 05 июня 2018

Это связано с тем, что результатом оператора loc в вашем случае является pandas.Series объект.sort_values в этом случае не имеет ключевого аргумента by, потому что он может только сортировать значения ряда.Посмотрите на разницу в подписи, когда вы звоните sort values в pandas.DataFrame

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

и когда вы звоните sort_values в pandas.Series

http://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.Series.sort_values.html

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