excel中的数据透视表的一个好处是它们可以自动提供小计.首先,我想知道在dplyr中是否已经创建了可以实现此目的的任何内容.如果没有,最简单的方法是什么?
在下面的示例中,我显示了气缸和化油器数量的平均排量.对于每组气缸(4,6,8),我希望看到该组的平均位移(或总位移,或任何其他汇总统计).
library(dplyr)
mtcars %>% group_by(cyl,carb) %>% summarize(mean(disp))
cyl carb mean(disp)
1 4 1 91.38
2 4 2 116.60
3 6 1 241.50
4 6 4 163.80
5 6 6 145.00
6 8 2 345.50
7 8 3 275.80
8 8 4 405.50
9 8 8 301.00
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,在R中有900,000行和11列.列名和类型如下:
column name: date / mcode / mname / ycode / yname / yissue / bsent / breturn / tsent / treturn / csales
type: Date / Char / Char / Char / Char / Numeric / Numeric / Numeric / Numeric / Numeric / Numeric
Run Code Online (Sandbox Code Playgroud)
我想计算小计.例如,我想计算yname中每次更改的总和,并为所有数值变量添加小计.有160个不同的ynames,因此结果表应该告诉我每个yname的小计.我还没有对数据进行排序,但这不是问题,因为我可以以任何我想要的方式对数据进行排序.以下是我的数据摘录:
date mcode mname ycode yname yissue bsent breturn tsent treturn csales
417572 2010-07-28 45740 ENDPOINT A 5772 XMAG 20100800 7 0 7 0 0
417573 2010-07-31 45740 ENDPOINT A 5772 XMAG 20100800 0 …Run Code Online (Sandbox Code Playgroud) 所以,有这个结构(从A1开始 - 显示片段>运行):
table {
border-color: #BBB;
border-width: 0px 0px 1px 1px;
border-style: dotted;
}
body {
font: 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #333;
}
td {
border-color: #BBB;
border-width: 1px 1px 0px 0px;
border-style: dotted;
padding: 3px;
}Run Code Online (Sandbox Code Playgroud)
<table>
<tbody>
<tr>
<th></th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
</tr>
<tr>
<td>1</td>
<td>Title 1</td>
<td>Title 2</td>
<td>Title 3</td>
<td>Title 4</td>
</tr>
<tr>
<td>2</td>
<td>GH</td>
<td>1</td>
<td>434</td>
<td>4</td>
</tr>
<tr>
<td>3</td>
<td>TH</td>
<td>3</td>
<td>435</td>
<td>5</td>
</tr>
<tr>
<td>4</td>
<td>TH</td>
<td>4</td>
<td>4</td> …Run Code Online (Sandbox Code Playgroud)我有一组输出数据透视表的查询.是否可以获得数据透视表的行和/或列小计?
我选择的桌子看起来像这样
Site FormID Present
Site 1 Form A Yes
Site 1 Form B Yes
Site 1 Form D Yes
Run Code Online (Sandbox Code Playgroud)
等等...
我的数据透视表查询就是这个
SELECT *
FROM (SELECT Site, COUNT(FormID) AS NumberOfForms,FormID
FROM @CRFCount WHERE Present='Yes'
GROUP BY Site, FormID) d
PIVOT
(SUM(NumberOfForms)
FOR [Site] IN ([Site 1], [Site 2], [Site 3])
) AS p;
Run Code Online (Sandbox Code Playgroud)
但我真的希望它能产生这个(当然这对我来说并不完全)
FormID Site 1 Site 2 Site 3 Total
Form A 8 8 15 31
Form B 14 4 NULL 18
Form C 14 NULL NULL 14 …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
import StringIO
from pandas import *
import numpy as np
df = read_csv(StringIO.StringIO('''Col1 Col2 A B
A D 1 6
A E 2 7
B D 3 8
B E 4 9
C D 5 19'''), delimiter='\t')
df['buc1'] = cut(df['A'], bins = [0, 2, 6, 8])
aggFunc = {'A': sum,
'B': np.average
}
Run Code Online (Sandbox Code Playgroud)
运行后:
df.groupby(['buc1']).agg(aggFunc)
Run Code Online (Sandbox Code Playgroud)
我得到:
A B
buc1
(0, 2] 3 6.5
(2, 6] 12 12.0
(6, 8] NaN NaN
Run Code Online (Sandbox Code Playgroud)
我的问题是:
您可以在问题的编辑部分找到C#的解决方案. 特别感谢Bruno Lowagie
我正在尝试通过C#中的iTextSharp创建发票.当我尝试在每个页面上打印小计时,它工作得非常好,但是我遇到了问题.
以下是用于为产品创建表的代码的一部分:
PdfPTable table = new PdfPTable(5);
table.WidthPercentage = 100;
float[] widths = new float[] { 10f, 30f, 120f, 30f, 30f };
table.SetWidths(widths);
table.SkipLastFooter = true;
table.SpacingAfter = 10;
//Cells to Write Header & Footer
AddCell(table, "Pos.", PdfPCell.ALIGN_RIGHT, BORDER_LTB, 0);
AddCell(table, "Menge", PdfPCell.ALIGN_RIGHT, BORDER_TB);
AddCell(table, "Text", PdfPCell.ALIGN_LEFT, BORDER_TB);
AddCell(table, "Einzelpreis ", PdfPCell.ALIGN_RIGHT, BORDER_TB);
AddCell(table, "Summe", PdfPCell.ALIGN_RIGHT, BORDER_RTB);
AddCell(table, "SUBTOTAL", PdfPCell.ALIGN_LEFT, BORDER_LTB, 7, 4);
AddCell(table, "", PdfPCell.ALIGN_LEFT, BORDER_RTB);
table.HeaderRows = 2;
table.FooterRows = 1;
//Cells with positions of …Run Code Online (Sandbox Code Playgroud) 我有以下数据:
Employee Account Currency Amount Location
Test 2 Basic USD 3000 Airport
Test 2 Net USD 2000 Airport
Test 1 Basic USD 4000 Town
Test 1 Net USD 3000 Town
Test 3 Basic GBP 5000 Town
Test 3 Net GBP 4000 Town
Run Code Online (Sandbox Code Playgroud)
我可以通过执行以下操作来设法转动:
import pandas as pd
table = pd.pivot_table(df, values=['Amount'], index=['Location', 'Employee'], columns=['Account', 'Currency'], fill_value=0, aggfunc=np.sum, dropna=True)
Run Code Online (Sandbox Code Playgroud)
输出:
Amount
Account Basic Net
Currency GBP USD GBP USD
Location Employee
Airport Test 2 0 3000 0 2000
Town Test 1 …Run Code Online (Sandbox Code Playgroud) 我试图按组和总计添加小计到表.我使用以下示例重新创建了数据.
DECLARE @Sales TABLE(
CustomerName VARCHAR(20),
LegalID VARCHAR(20),
Employee VARCHAR(20),
DocDate DATE,
DocTotal Int,
DueTotal Int
)
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-09-01',1000,200
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-08-20',500,100
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-08-18',200,50
INSERT INTO @Sales SELECT 'Deli Armstrong','2345', 'Employee1','2015-09-17',2300,700
INSERT INTO @Sales SELECT 'Deli Armstrong','2345', 'Employee1','2015-09-11',5000,1000
INSERT INTO @Sales SELECT 'Ali Mezzu','6789', 'Employee1','2015-09-07',300,200
Run Code Online (Sandbox Code Playgroud)
选择 @Sales
我需要在客户事件的下方添加客户小计,并在表的最后一行添加总计,如下所示:
到目前为止我尝试过的:
select
case
when GROUPING(CustomerName) = 1 and
GROUPING(Employee) = 1 and
GROUPING(DocDate) = 1 and
GROUPING(LegalID) = …Run Code Online (Sandbox Code Playgroud) 有谁知道用什么$variable来php获得购物车的小计?
小计=折扣或税前的购物车总价值.
这对我很有帮助.如果小计超过250欧元,我想增加额外费用.
提前致谢.
假设我有以下数据帧:
a b c Sce1 Sce2 Sce3 Sce4 Sce5 Sc6
Animal Ground Dog 0.0 0.9 0.5 0.0 0.3 0.4
Animal Ground Cat 0.6 0.5 0.3 0.5 1.0 0.2
Animal Air Eagle 1.0 0.1 0.1 0.6 0.9 0.1
Animal Air Owl 0.3 0.1 0.5 0.3 0.5 0.9
Object Metal Car 0.3 0.3 0.8 0.6 0.5 0.6
Object Metal Bike 0.5 0.1 0.4 0.7 0.4 0.2
Object Wood Chair 0.9 0.6 0.1 0.9 0.2 0.8
Object Wood Table 0.9 0.6 0.6 0.1 …Run Code Online (Sandbox Code Playgroud) subtotal ×10
pandas ×3
group-by ×2
python ×2
r ×2
sql-server ×2
t-sql ×2
aggregate ×1
c# ×1
cart ×1
dplyr ×1
excel-2010 ×1
itext ×1
listobject ×1
php ×1
pivot ×1
pivot-table ×1
rollup ×1
sql ×1
summary ×1
vba ×1
woocommerce ×1
wordpress ×1