【问题标题】:Retrieve first element in a column list and sum over it (e.g. if first element = k, sum over k) in python在python中检索列列表中的第一个元素并对其求和(例如,如果第一个元素= k,对k求和)
【发布时间】:2018-08-19 10:58:57
【问题描述】:

如果这个问题已经得到解答,我真的很抱歉,我是 python 新手,可能一直在寻找错误的术语。

我正在使用 Python for Data Analysis 第 2 版中的美国婴儿姓名数据。基本上我已经将数据集连接到一个名为 name_df 的 df 中,看起来像

id   name   births
1    Aaron  20304
2    Adam    10000

等等

如果是 K(或任何其他字母),我希望对每个名称元素的第一个字母求和。不过,我正在努力获得第一个元素部分 - 这是我到目前为止所拥有的:

count = 0
letter = ['K']
for n in ['name']:
   if name_df['name'][0] == letter:
        count +=1
    else:
        count+=0

print(count)

很明显,这只是检索第一个元素。我需要使用某种拼接技术吗?

【问题讨论】:

  • 类似:name_df['name'].str[0].value_counts()?你想要的输出是什么?

标签: python-3.x count sum pandas-groupby


【解决方案1】:

您要计算以“K”开头的不同名称吗?

len([n for n in name_df['name'] if n[0]=='K'])

或者你想总结得到婴儿的数量?

sum([c for n,c in name_df[['name','births']].values if n[0]=='K'])

或者使用更多的“pandaish”语法:

sum(name_df.loc[name_df['name'].str[0]=='K','births'])

【讨论】:

    猜你喜欢
    • 2016-11-25
    • 2019-08-13
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多