分类:编程语言
一、问题原来有三个充值订单,现在要退款450元,如何分配才能让本次退款涉及的充值订单数量最少?具体数据参考下图:二、解决方案Step1:对可退金额进行降序排列,以便优先使用可退金额比较大的订单Step2:使用CTE公用表达式,实现类似for或while循环或游标的功能三、脚本createtable#t(充值int,已退int,可退int)insertinto#t(充值,已退,可退)values(200,100,100),(500,200,300),(300,100,200)/*作者:z...
继续阅读 >
数据importnumpyasnpimportpandasaspddata=[{'Name':'小明','Chinese':[70,80],'Math':[90,80]},{'Name':'小红','Chinese':[70,80,90],'Math':[90,80,70]}]data=pd.DataFrame(data)data拆分成行defsplit_row(data,column):'''拆分成行:paramdata:原始数据:paramcolumn:拆分的列名:typedata:pandas.core.frame.DataFrame:typecolumn:str'''row_len=list(map(len,data[col...
继续阅读 >
按照某一列排序d={'A':[3,6,6,7,9],'B':[2,5,8,0,0]}df=pd.DataFrame(data=d)print('排序前:\n',df)'''排序前:AB032165268370490'''res=df.sort_values(by='A',ascending=False)print('按照A列的值排序:\n',res)'''按照A列的值排序:AB490370165268032'''按照多列排序d={'A':[3,6,6,7,9],'B':[2,5,8,0,0]}df=pd.DataFrame(data=d)print('排序前:\n',df)'''排序前:AB...
继续阅读 >
pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称。这样内部数据抽取既可以用“行列名称(对应.loc[]方法)”,也可以用“矩阵下标(对应.iloc[]方法)”两种方式进行。下面具体说明:(以下程序均在Jupyternotebook中进行,部分语句的print()函数省略)首先生成一个DataFrame对象:importpandasaspdscore=[[34,67,87],[68,98,58],[75,73,86],[94,59,81]]name=['小...
继续阅读 >