小编est*_*pdl的帖子

如何使用聚合方法从熊猫系列中获取唯一值?

考虑这个 dataframe

df = pandas.DataFrame(numpy.random.randint(0,100,size=(200, 4)), columns=list('ABCD'))
df['E'] = list(numpy.arange(1001, 1021)) * 10
df['F'] = ['c', 'b', 'b', 'a', 'd'] * 20 + ['d', 'a', 'b', 'b', 'c'] * 20
Run Code Online (Sandbox Code Playgroud)

我想按列 'E' 分组,但我想聚合一些函数。例如sum来自 A、B、Dcount列和C 列的值。对于列“F”,我想在数组中获取唯一值。

所以我试过:

params = {
  'A': 'sum',
  'B': 'sum',
  'C': 'count',
  'D': 'sum',
  'F': pandas.Series.unique
}
df_ = df.groupby('E').agg(params).reset_index()
Run Code Online (Sandbox Code Playgroud)

返回错误: Exception: Must produce aggregated value

我尝试了这段代码,因为在另一个例子中它有效。从那以后,我一直在尝试相同的方法来过滤不同的数据,但没有结果。

如果我使用pandas.Series.nuniquelambda x: x.nunique()它计算唯一值并且它工作正常。但是,如何使用 pandasaggregate方法获取唯一值?

为了完成这项工作,我编写了一个函数,其中 afor loop将列名作为参数。但是,我希望这可以有更好的方法。

python python-3.x pandas

2
推荐指数
2
解决办法
3628
查看次数

按值对Pandas DataFrame进行排序

我知道这个问题有很多答案,例如:如何使用多列中的值对pandas数据框进行排序?

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

我构建了一个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)
Run Code Online (Sandbox Code Playgroud)

然后我打电话给特定的推文:

maxTweets = weeklyAnalysis[['Tweet', 'Retweets']]
                          [weeklyAnalysis['Retweets'] >= promedioRts]
Run Code Online (Sandbox Code Playgroud)

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

maxTweets.sort_values(by=['Tweet', 'Retweets'], ascending=[False, True])
Run Code Online (Sandbox Code Playgroud)

我怎样才能真正对转列进行排序.

任何建议表示赞赏!谢谢

python numpy dataframe python-3.x pandas

0
推荐指数
1
解决办法
5951
查看次数

标签 统计

pandas ×2

python ×2

python-3.x ×2

dataframe ×1

numpy ×1