【问题标题】:How change I change what I have into a python map function?如何更改我将拥有的内容更改为 python 地图函数?
【发布时间】:2020-01-31 13:33:35
【问题描述】:

我有一个数据框,其中每一行都有一个作者(新闻频道)、文章的标题以及该文章的 cmets 数。

基本上,我想计算每篇文章的 cmets 数。我目前有以下代码,但我想考虑它。

# CSV of news articles, with authors, articles, and comments
df = pd.read_csv('articles.csv')

# Counts per author
art_count = df['AUTHOR'].value_counts()

# Calculate # of comments per article
def comment_sum(df, channel, channel_name, target):
    # ex) sum(df[df['AUTHOR'] == 'NYTIMES']['COMMENTS'])
    return sum(df[df[channel] == channel_name][target])

# Calculate # of comments
com_count = []
for newspaper in art_count.index:
    com_count.append(comment_sum(df,'AUTHOR',newspaper,'COMMENTS'))

我觉得我可以通过使用 map 和 lambda 函数来简化我的代码,而无需声明方法,但我不确定如何去做。

【问题讨论】:

  • 你听说过python中的groupby吗? stackoverflow.com/questions/30679467/… 看看这个!
  • df.groupby(['AUTHOR','article'])['COMMENTS'].sum()? ('article'是文章的栏目)
  • 如果你们中的任何一个作为答案发帖,我可以选择答案。

标签: python python-3.x pandas dictionary lambda


【解决方案1】:

df.groupby(['AUTHOR','article'])['COMMENTS'].sum() 供后代使用,正如 @ansev 在 cmets 中回答的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多