精华内容
下载资源
问答
  • 我有个看起来像这样的行集:defaultdict(,{u'row1': {u'column1': 33, u'column2': 55, u'column3': 23},u'row2': {u'column1': 32, u'column2': 32, u'column3': 17},u'row3': {u'column1': 31, u'column2': 87, ...

    我有一个看起来像这样的行集:

    defaultdict(,

    {

    u'row1': {u'column1': 33, u'column2': 55, u'column3': 23},

    u'row2': {u'column1': 32, u'column2': 32, u'column3': 17},

    u'row3': {u'column1': 31, u'column2': 87, u'column3': 18}

    })

    我希望能够轻松获得column1,column2,column3的总和.如果我可以为任意数量的列执行此操作会很棒,在哈希映射中接收结果看起来像columnName => columnSum.正如您可能猜到的那样,我不可能首先从数据库中获取求和值,因此提出问题的原因.

    解决方法:

    >>> from collections import defaultdict

    >>> x = defaultdict(dict,

    {

    u'row1': {u'column1': 33, u'column2': 55, u'column3': 23},

    u'row2': {u'column1': 32, u'column2': 32, u'column3': 17},

    u'row3': {u'column1': 31, u'column2': 87, u'column3': 18}

    })

    >>> sums = defaultdict(int)

    >>> for row in x.itervalues():

    for column, val in row.iteritems():

    sums[column] += val

    >>> sums

    defaultdict(, {u'column1': 96, u'column3': 58, u'column2': 174})

    哦,更好的方式!

    >>> from collections import Counter

    >>> sums = Counter()

    >>> for row in x.values():

    sums.update(row)

    >>> sums

    Counter({u'column2': 174, u'column1': 96, u'column3': 58})

    标签:python,sum

    来源: https://codeday.me/bug/20190723/1513400.html

    展开全文
  • 这里介绍如何用python来自动完成我们的excel工作。本文的目的是展示一些常见的Excel任务,以及如何在python pandas中执行...自动求和数据如下:原始数据截图第1步,求出每数据的和,并作为个 新附加到数据中...

    这里介绍如何用python来自动完成我们的excel工作。

    本文的目的是展示一些常见的Excel任务,以及如何在python pandas中执行类似的任务。例子微不足道,但重要的是通过这个例子来循序渐进的介绍pandas简单到复杂的功能。展示pandas如何利用Python的完整的模块系统做一些简单的文字处理。

    自动求和

    数据如下:

    0fd2d643cc55

    原始数据截图

    第1步,求出每一行数据的和,并作为一个  新列附加到数据中。在excel里,可能用公式是sum(A2:E2)。

    在这里,这功能就可以用pandas的dataframe来解决。这里简单说下dataframe,我们简单认为,dataframe就是对应了excel的数据结构,我们操作的时候,就可以认为dataframe就是对应excel的操作。

    第2步,对P1~P5的每一列做一个求和。在excel里是用公式,SUM(G2:G16).python对应解决方案是用 pandas的对应列,然后直接求sum即可。

    第3步,对第一列求和,平均值,最小值,最大值。

    程序逻辑如下,读入excel,然后按行求和,把求出所有行的和作为一个新列加到数据里,为防止破坏原始数据,写入一个新的excel文件,接着在python运行结果里显示对数据的操作结果。

    程序如下:

    0fd2d643cc55

    Python代码

    运行结果:

    0fd2d643cc55

    运行结果

    让我们看看新生成的excel.

    0fd2d643cc55

    图片发自简书App

    只需要这么几行代码,就完成了读取excel,然后对P1,P2,P3,P4,P5求和,平均值,最小值,最大值,并写入新文件的功能。

    第17,18行代码,把求各行和的结果写入一个新的excel文件,名字为newxls.xls,并指定写入第一个名为0的工作表中。

    其中14行代码中df.head()使用head()函数查看列表前几行数据(默认是前5行),如果我在括号里写3,结果只会显示前3行,如下:

    0fd2d643cc55

    图片发自简书App

    展开全文
  • python pandas行、列求和及累加求和data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按相加各行数data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各,增加小计,要注意的是小计中变成...

    python pandas行、列求和及累加求和

    data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按列相加各行数

    data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各列,增加小计,

    要注意的是小计中变成字符,序列变object

    要时刻关注data.中type的变化,可以用

    data.dtypes

    显示各列的type,可以用

    data.astype(float) 转化,注意转化时,有时会出错

    chengji=[[100,95,100,99],[90,98,99,100],[88,95,98,88],[99,98,97,87],[96.5,90,96,85],[94,94,93,91]]

    data=pd.DataFrame(chengji,columns=['语文','类别','数学','政治'])

    data['合计']=data.apply(lambda x: x.sum(),axis=1) #按列相加各行数

    print('合计',data)

    data.loc['小计']=data.apply(lambda x: x.sum(),axis=0) #按行相加各列,增加小计,是字符,序列变object

    print('小计',data)

    data['累加值']=0

    data.drop('小计',inplace=True)

    print('删除小计',data)

    data.sort_index(inplace=True)

    print('重排序列',data)

    data.astype(float)

    data['累加值']=data['合计'].cumsum()

    print('累计data',data)

    data.sort_values(by=['合计','语文'] , ascending=[False,False],inplace=True) #按多列值排序,ascending=False降序

    #data.sort_values(by='语文',axis=1,ascending=True, inplace=True, na_position='last')

    #重建索引会把原索引值变成object

    data['排名']=data['合计'].rank(ascending=0,method='min')

    print (data)

    data.sort_index(inplace=True)

    print(data)

    data = data.reset_index(drop=True)

    data.loc[1:3,'语文']=""

    data.loc[4,'语文']=None #空值为none 或np.nan

    print(data)

    print(data.dtypes)

    data.fillna(value=0,inplace=True)

    # "所有值全为缺失值才删除 df.dropna(how='all')

    # axis:维度,axis=0表示index行,axis=1表示columns列,默认为0

    #how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列

    #thresh:一行或一列中至少出现了thresh个才删除。

    #subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)

    #inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。

    print('填充缺失值',data)

    data.replace("",0,inplace=True)

    print('填充空值',data)

    print(data.loc[data.index==1,'累加值'])

    print('类别数量',data['类别'])

    print('类别=95',data.loc[data['类别']==95,'累加值'])

    print(data.loc[:,'合计']-data.loc[:,'语文'])

    先排序后,可以进行累加值,累加的列一定要存在,可以用data[‘累加值’]=0 建一个值为0的列。

    用data[‘累加值’]=data[‘合计’].cumsum() 把合计的值累加,一定要注意,是按照排列的顺序相加。

    合计 语文 类别 数学 政治 合计

    0 100.0 95 100 99 394.0

    1 90.0 98 99 100 387.0

    2 88.0 95 98 88 369.0

    3 99.0 98 97 87 381.0

    4 96.5 90 96 85 367.5

    5 94.0 94 93 91 372.0

    小计 语文 类别 数学 政治 合计

    0 100.0 95.0 100.0 99.0 394.0

    1 90.0 98.0 99.0 100.0 387.0

    2 88.0 95.0 98.0 88.0 369.0

    3 99.0 98.0 97.0 87.0 381.0

    4 96.5 90.0 96.0 85.0 367.5

    5 94.0 94.0 93.0 91.0 372.0

    小计 567.5 570.0 583.0 550.0 2270.5

    删除小计 语文 类别 数学 政治 合计 累加值

    0 100.0 95.0 100.0 99.0 394.0 0

    1 90.0 98.0 99.0 100.0 387.0 0

    2 88.0 95.0 98.0 88.0 369.0 0

    3 99.0 98.0 97.0 87.0 381.0 0

    4 96.5 90.0 96.0 85.0 367.5 0

    5 94.0 94.0 93.0 91.0 372.0 0

    重排序列 语文 类别 数学 政治 合计 累加值

    0 100.0 95.0 100.0 99.0 394.0 0

    1 90.0 98.0 99.0 100.0 387.0 0

    2 88.0 95.0 98.0 88.0 369.0 0

    3 99.0 98.0 97.0 87.0 381.0 0

    4 96.5 90.0 96.0 85.0 367.5 0

    5 94.0 94.0 93.0 91.0 372.0 0

    累计data 语文 类别 数学 政治 合计 累加值

    0 100.0 95.0 100.0 99.0 394.0 394.0

    1 90.0 98.0 99.0 100.0 387.0 781.0

    2 88.0 95.0 98.0 88.0 369.0 1150.0

    3 99.0 98.0 97.0 87.0 381.0 1531.0

    4 96.5 90.0 96.0 85.0 367.5 1898.5

    5 94.0 94.0 93.0 91.0 372.0 2270.5

    语文 类别 数学 政治 合计 累加值 排名

    0 100.0 95.0 100.0 99.0 394.0 394.0 1.0

    1 90.0 98.0 99.0 100.0 387.0 781.0 2.0

    3 99.0 98.0 97.0 87.0 381.0 1531.0 3.0

    5 94.0 94.0 93.0 91.0 372.0 2270.5 4.0

    2 88.0 95.0 98.0 88.0 369.0 1150.0 5.0

    4 96.5 90.0 96.0 85.0 367.5 1898.5 6.0

    语文 类别 数学 政治 合计 累加值 排名

    0 100.0 95.0 100.0 99.0 394.0 394.0 1.0

    1 90.0 98.0 99.0 100.0 387.0 781.0 2.0

    2 88.0 95.0 98.0 88.0 369.0 1150.0 5.0

    3 99.0 98.0 97.0 87.0 381.0 1531.0 3.0

    4 96.5 90.0 96.0 85.0 367.5 1898.5 6.0

    5 94.0 94.0 93.0 91.0 372.0 2270.5 4.0

    语文 类别 数学 政治 合计 累加值 排名

    0 100 95.0 100.0 99.0 394.0 394.0 1.0

    1 98.0 99.0 100.0 387.0 781.0 2.0

    2 95.0 98.0 88.0 369.0 1150.0 5.0

    3 98.0 97.0 87.0 381.0 1531.0 3.0

    4 None 90.0 96.0 85.0 367.5 1898.5 6.0

    5 94 94.0 93.0 91.0 372.0 2270.5 4.0

    语文 object

    类别 float64

    数学 float64

    政治 float64

    合计 float64

    累加值 float64

    排名 float64

    dtype: object

    填充缺失值 语文 类别 数学 政治 合计 累加值 排名

    0 100 95.0 100.0 99.0 394.0 394.0 1.0

    1 98.0 99.0 100.0 387.0 781.0 2.0

    2 95.0 98.0 88.0 369.0 1150.0 5.0

    3 98.0 97.0 87.0 381.0 1531.0 3.0

    4 0 90.0 96.0 85.0 367.5 1898.5 6.0

    5 94 94.0 93.0 91.0 372.0 2270.5 4.0

    填充空值 语文 类别 数学 政治 合计 累加值 排名

    0 100.0 95.0 100.0 99.0 394.0 394.0 1.0

    1 0.0 98.0 99.0 100.0 387.0 781.0 2.0

    2 0.0 95.0 98.0 88.0 369.0 1150.0 5.0

    3 0.0 98.0 97.0 87.0 381.0 1531.0 3.0

    4 0.0 90.0 96.0 85.0 367.5 1898.5 6.0

    5 94.0 94.0 93.0 91.0 372.0 2270.5 4.0

    1 781.0

    Name: 累加值, dtype: float64

    类别数量 0 95.0

    1 98.0

    2 95.0

    3 98.0

    4 90.0

    5 94.0

    Name: 类别, dtype: float64

    类别=95 0 394.0

    2 1150.0

    Name: 累加值, dtype: float64

    0 294.0

    1 387.0

    2 369.0

    3 381.0

    4 367.5

    5 278.0

    dtype: float64

    原文链接:https://blog.csdn.net/weixin_45903952/article/details/104997894

    展开全文
  • 我有很多问题,我不知道从哪里开始,但是,对于初学者来说,我会尽量简化为个我似乎无法克服的障碍。在我正在编写的代码是个小型的计划生成器,用于需要全天候覆盖的工作。每个班次覆盖两周的时间跨度(有些轮班...

    我正在寻找优化我写的程序,我真的遇到了一些绊脚石。我有很多问题,我不知道从哪里开始,但是,对于初学者来说,我会尽量简化为一个我似乎无法克服的障碍。在

    我正在编写的代码是一个小型的计划生成器,用于需要全天候覆盖的工作。每个班次覆盖两周的时间跨度(有些轮班在两周内轮换,但必须保持覆盖要求-这就是为什么我必须使用14天)。到目前为止,我正试图找出最快的方法来检查一天的轮班组合是否符合正确的人数。我一直听说Numpy在这类事情上非常快,但当我运行以下内容时:import numpy as np

    import time

    c_ar = np.array([1,1,1,1,0,0,0,1,1,1,1,0,0,0])

    d_ar = np.array([0,0,0,1,1,1,1,0,0,0,1,1,1,1])

    e_ar = np.array([0,0,0,1,1,1,1,0,0,0,1,1,1,1])

    m_ar = np.array([0,1,1,0,1,1,0,0,1,1,0,1,1,0])

    p_ar = np.array([1,1,0,0,0,1,1,1,1,0,0,0,1,1])

    t0 = time.time()

    x = c_ar[0] + d_ar[0] + e_ar[0] + m_ar[0] + p_ar[0]

    t1 = time.time()

    print t1-t0

    我回来了:2.19345092773e-05

    但是,如果我运行:

    ^{pr2}$

    我回来了:1.90734863281e-06

    我是不是遗漏了一些关于Numpy的东西,让它比我的例子更快?还有,有没有比我上面两种方法更快的方法呢?在

    展开全文
  • 请参考以下代码'''按区间某列做分组,然后统计各组的另一列的平均值。author: 李毅'''import numpy as npimport pandas as pddf = pd.DataFrame([[0.1, 1],[0.2, 2],[0.3, 3],[0.4, 4],[0.5, 5],[0.6, 6],], ...
  • python pandas行、列求和及累加求和

    万次阅读 2020-03-20 20:38:07
    python pandas行、列求和及累加求和 data[‘合计’]=data.apply(lambda x: x.sum(),axis=1) #按相加各行数 data.loc[‘小计’]=data.apply(lambda x: x.sum(),axis=0) #按行相加各,增加小计, 要注意的是小计中...
  • From "..., I am pulling data into python of Column A and Column B. The goal is to sum the values of Column B, and see whether it is higher or lower than the given sum of 1500. If ...
  • 今天在CU上无间看到个帖子。http://bbs.chinaunix.net/thread-3662056-1-1.html需求如下ci pi er cc 22 ii2 3 5 1 2 42 4 5 5 1 ...
  • Python之list对应元素求和

    万次阅读 2017-09-28 00:18:54
    Python之list对应元素求和
  • 请问大神,Python如何从Pandas的一个DataFrame(A)中获得第一列的索引,匹配到另一个DataFrame(B)第一列的对应行,并这些行中每一列的数值求和
  • How do I add up all of the values of a column in a python array? Ideally I want to do this without importing any additional libraries.input_val = [[1, 2, 3, 4, 5],[1, 2, 3, 4, 5],[1, 2, 3, 4, 5]]outpu...
  • 基本统计分析:描述性统计分析,用来概括失误整体...求和 平均值 方差 标准差 1 函数 描述性统计函数: describe() 常用的统计函数: 统计函数 注释 size 计数 sum 求和 mean 平均值 Var 方差 std 标准差 ...
  • Step1:本程序需要用到pandas和os库,这两个库都不是python标准库的一部分,所以使用之前需要先导入。导入时可以为pandas取个别名pd。...sum函数默认一列进行求和,通过修改参数axis=1,来每一行的数值...
  • 第二列求和,但是重复的要把数据放到第次重复的地方,其他的空着。 整体思路是计数,之后建立个列表储存信息,之后相乘。 """ author: shuaijie intro: 分类求和 date: 07/22/2020 19:17 """ import pandas ...
  • Python XlsxWriter module 使用之列求和

    千次阅读 2018-07-11 10:06:36
    求和示例数据如下: expenses = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ) 操作代码如下: >>> import xlsxwriter >>> workbook = ...
  • 上一篇还有一个知识点就是,相关系数#得出表中列与列之间的相关性大小 part4 多表联合查询(join)1、多表联合excel中是用vlookup,pandas...但如果这里把【ID】这一列设为index,就不存在共同的列(因为设置为index的...
  • 下面小编就为大家分享python对excel文档去重及求和的实例,具有很好的参考价值,希望大家有所帮助。一起跟随小编过来看看吧
  • pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是数据组织方式,这篇文章主要给大家介绍了python中pandas.DataFrame行与列求和及添加新行与的方法,文中给出了详细的示例代码,需要的...
  • python 数据处理】分组求和、合并

    千次阅读 2017-10-09 11:21:25
    # encoding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') import time import pandas as pd import xlsxwriter time1 = time.time() ...#############读取数据######################
  • Python对表的行列求和

    千次阅读 2019-11-28 13:34:52
    Python对表的行列求和 比如有个成绩表: np.random.seed(666) a = np.random.randint(60, 100, (10, 6)) df = pd.DataFrame(a, index = ['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10'], ...
  • Python中可以使用NumPy中的sum函数来进行数值求和,sum方法的格式如下:numpy.sum(a, ...axis - 求和的方向,None或没有axis参数表示全部数据相加,axis=0,表示按相加,axis=1,表示按行相加,对于维数组,只...
  • sum_0=0print(for循环直接调用递归函数求和.center(80,*))#显示效果明显foriinrange(1,21):sum_0+=recursion(i)print(sum_0) 列表求和方案:list=#定义...在表达阶乘时,就使用“!”来表示。 如h阶乘,就...
  • 定义个计数器变量,从数字1开始,循环会比较方便row = 1while row ("*" * row) row += 1 第 2 步:使用循环嵌套打印小星星 知识点 print 函数的使用做个增强 在默认情况下,print 函数输出内容之后,会自动...
  • 本文介绍的是python中pandas.DataFrame行与列求和及添加新行与的相关资料,下面话不多说,来看看详细的介绍吧。 方法如下: 导入模块: from pandas import DataFrame import pandas as pd import numpy as np ...
  • 这里介绍如何用python来自动完成我们的excel工作。本文的目的是展示一些常见的Excel任务,以及如何在python pandas中...自动求和数据如下:原始数据截图第1步,求出每数据的和,并作为个新附加到数据中。在e...
  • 安装成功以后载入两个包1、运用 NumPy 分析数据1.1 定义维数组:1.2 查询:1.3 切片访问 - 获取指定序号范围的元素1.4 查询数据类型1.5 统计计算 - 平均值1.6 统计计算 - 标准差1.7 向量...
  • LintCoder python 小白2-骰子求和

    千次阅读 2017-07-08 22:42:15
    骰子求和

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,286
精华内容 7,714
关键字:

python对一列数据求和

python 订阅