按值对Pandas DataFrame进行排序

时间:2016-05-17 23:43:58

标签: python python-3.x numpy pandas dataframe

我知道这个问题有很多答案,例如:How to sort pandas data frame using values from several columns?

我尝试了用户提供的解决方案,但我无法获得排序列。

我构建了一个DataFrame:

weekly = {'Tweet ID': Series(tweetID),
          'Fecha de Publicación': Series(tweetDate),
          'Tweet': Series(textStatus),
          'Retweets': Series(retweetCount),
          'Favoritos': Series(favoriteCount),
          'Hashtags': Series(hashtags),
          'Menciones': Series(mentions)}

weeklyAnalysis = DataFrame(weekly)

然后我打电话寻找具体的推文:

maxTweets = weeklyAnalysis[['Tweet', 'Retweets']]
                          [weeklyAnalysis['Retweets'] >= promedioRts]

这是我尝试过的,为了对转推列进行排序:

maxTweets.sort_values(by=['Tweet', 'Retweets'], ascending=[False, True])

如何实际排序转推列。

任何建议表示赞赏!感谢

2 个答案:

答案 0 :(得分:5)

默认情况下,pandas不会排序,与Python的list不同。

更改

maxTweets.sort_values(by=['Tweet', 'Retweets'], ascending=[False, True])

maxTweets = maxTweets.sort_values(by=['Tweet', 'Retweets'], ascending=[False, True])

或通过inplace=True

maxTweets.sort_values(by=['Tweet', 'Retweets'], ascending=[False, True], inplace=True)

答案 1 :(得分:4)

如果我正确地理解你,你试图通过'转推'来排序那个df?使用方法:

maxTweets_sorted = maxTweets.sort_values(by='Retweets')