标签: pivot-table

在数据透视表中的自定义计算字段中使用公式

在Excel Pivot表报告中,可以通过插入"计算字段"来进行用户干预,以便用户可以进一步操作报告.这似乎是在数据透视表之外的数据透视表数据上使用公式的最佳方法,原因很明显.

"计算字段"对话框,如下所示:

在此输入图像描述

虽然很容易在可用变量之间进行计算(如屏幕截图所示)但我找不到如何为任何可用变量引用值范围.

例如,如果由于某种原因我想将数据居中在A1:A100我使用的范围内= A1 - AVERAGE(A1:A100)并填充常规Excel表格中的所有行.但对于Pivot表,如果我使用"计算字段"对话框并使用公式添加新变量:= 'Actual Sales' - AVERAGE('Actual Sales')我得到0输出.

所以我的问题是如何在"计算字段"对话框中引用"实际销售额"变量的整个范围,以便AVERAGE()返回所有目标单元格的平均值?

excel pivot-table excel-2010

11
推荐指数
1
解决办法
14万
查看次数

如何在我的数据透视表中添加加权平均值?

我想知道如何在我的数据透视表中添加加权平均值.实际上,我需要做以下计算:SUM(col1 * col2)/SUM(col2).

我试图通过使用计算字段选项来做到这一点但是当我输入我的公式时,我只有以下结果作为输出:SUM((col1 * col2)/col2)它等于SUM(col1).

excel pivot-table

11
推荐指数
1
解决办法
5万
查看次数

使用多索引列展平DataFrame

我想将从数据透视表派生的Pandas DataFrame转换为行表示,如下所示.

这就是我所在的地方:

import pandas as pd
import numpy as np
df = pd.DataFrame({
    'goods': ['a', 'a', 'b', 'b', 'b'],
    'stock': [5, 10, 30, 40, 10],
    'category': ['c1', 'c2', 'c1', 'c2', 'c1'],
    'date': pd.to_datetime(['2014-01-01', '2014-02-01', '2014-01-06', '2014-02-09', '2014-03-09'])
})
# we don't care about year in this example
df['month'] = df['date'].map(lambda x: x.month)
piv = df.pivot_table(["stock"], "month", ["goods", "category"], aggfunc="sum")
piv = piv.reindex(np.arange(piv.index[0], piv.index[-1] + 1))
piv = piv.ffill(axis=0)
piv = piv.fillna(0)
print piv
Run Code Online (Sandbox Code Playgroud)

结果

stock            
goods        a       b    
category …
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

11
推荐指数
2
解决办法
2万
查看次数

Google表格数据透视表未更新

我有一个谷歌应用程序脚本,它将信息提交给有组织的工作表,并希望创建一个包含工作表中所有信息的数据透视表.我可以这样做,但每当我向工作表提交一行新数据时,它都不会自动包含在数据透视表中.每次提交新的数据行时,我都必须手动更改数据透视表的范围.有什么方法可以让sheet/pivot表自动包含新的数据行吗?

pivot-table google-sheets google-apps-script

11
推荐指数
2
解决办法
2万
查看次数

从数据透视表缓存重新创建源数据

我试图从使用数据透视表缓存的数据透视表中提取源数据并将其放入空白电子表格.我尝试了以下但它返回应用程序定义或对象定义的错误.

ThisWorkbook.Sheets.Add.Cells(1,1).CopyFromRecordset ThisWorkbook.PivotCaches(1).Recordset
Run Code Online (Sandbox Code Playgroud)

文档表明PivotCache.Recordset是一个ADO类型,所以这应该工作.我确实在引用中启用了ADO库.

有关如何实现这一目标的任何建议?

excel vba pivot-table

10
推荐指数
1
解决办法
2万
查看次数

如何使用VBA在Excel中添加连接(到外部数据源)并将其保存到该Excel电子表格的Connections列表中

我可以使用VBA创建一个新的ADODB.Connection和相关的ADODB.Command和ADOBD.Parameter,然后创建一个PivotCache和一个数据透视表

Sub CreatePivotTable()
    'Declare variables
    Dim objMyConn As ADODB.Connection
    Dim objMyCmd As ADODB.Command
    Dim objMyParam As ADODB.Parameter
    Dim objMyRecordset As ADODB.Recordset

    Set objMyConn = New ADODB.Connection
    Set objMyCmd = New ADODB.Command
    Set objMyRecordset = New ADODB.Recordset

    'Open Connection'
    objMyConn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=myMIS;Data Source=localhost;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=WKSTN101;Use Encryption for Data=False;Tag with column collation when possible=False"
    objMyConn.Open

    'Set and Excecute SQL Command'
    Set objMyCmd.ActiveConnection = objMyConn
    objMyCmd.CommandText = "select a.col1, a.col2, b.col3, b.col4" & _
                           "from …
Run Code Online (Sandbox Code Playgroud)

excel vba pivot-table

10
推荐指数
1
解决办法
4万
查看次数

从数据框到数据透视表时,Pandas处理缺失值

鉴于以下pandas数据框:

df = pd.DataFrame({'A': ['foo' ] * 3 + ['bar'],
         'B': ['w','x']*2,
         'C': ['y', 'z', 'a','a'],
         'D': rand.randn(4),
          })

print df.to_string()
"""
     A  B  C           D
0  foo  w  y  0.06075020
1  foo  x  z  0.21112476
2  foo  w  a  0.01652757
3  bar  x  a  0.17718772
"""
Run Code Online (Sandbox Code Playgroud)

注意没有bar,w组合.执行以下操作时:

pv0 = pandas.pivot_table(df, rows=['A','B'],cols=['C'], aggfunc=numpy.sum)

pv0.ix['bar','x'] #returns result

pv0.ix['bar','w'] #key error though i would like it to return all Nan's

pv0.index #returns 
[(bar, x), (foo, w), (foo, x)]
Run Code Online (Sandbox Code Playgroud)

只要在'C'列中至少有一个条目与foo,x的情况一样(它在'C'列中只有'z'的值),它将为其他列值返回NaN' C'不存在于foo,x(例如'a','y')

我想要的是拥有所有多索引组合,即使那些没有所有列值数据的组合.

pv0.index …
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

10
推荐指数
1
解决办法
2260
查看次数

将数据插入laravel中的数据透视表

我有3个表:posts,tags,post_tag.

每个Post都有很多标签,所以我使用hasMany它们的方法.但是当我在下拉列表中选择3个标签时,我无法添加它们,post_tag因此我无法选择并显示每个帖子的标签.

我的Post模特:

 class Post extends Eloquent{
 public function tag()
         {
           return  $this->hasMany('Tag');
         }
    }
Run Code Online (Sandbox Code Playgroud)

我的Tag模特:

class Tag extends Eloquent{
 public function post()
         {
           return  $this->belongsToMany('Post');
         }
Run Code Online (Sandbox Code Playgroud)

}

我的postController:

class postController extends BaseController{

public function addPost(){

    $post=new Post;

    $post_title=Input::get('post_title');
    $post_content=Input::get('post_content');
    $tag_id=Input::get('tag');

    $post->tag()->sync($tag_id);
    $post->save();
Run Code Online (Sandbox Code Playgroud)

我希望将此post_id保存保存到post_tag带有标签ID的表中,但它不起作用.谢谢你的时间.

php pivot-table laravel eloquent

10
推荐指数
2
解决办法
2万
查看次数

在R中,自定义dcast.data.table创建的列的名称

我是新手reshape2,data.table并试图学习语法.

我有一个data.table我想从每个分组变量的多行转换为每个分组变量一行.为简单起见,我们让它成为一个客户表,其中一些客户共享地址.

library(data.table)

# Input table:
cust <- data.table(name=c("Betty","Joe","Frank","Wendy","Sally"),
                   address=c(rep("123 Sunny Rd",2), 
                             rep("456 Cloudy Ln",2),
                                 "789 Windy Dr"))
Run Code Online (Sandbox Code Playgroud)

我希望输出具有以下格式:

# Desired output looks like this:
(out <- data.table(address=c("123 Sunny Rd","456 Cloudy Ln","789 Windy Dr"),
                   cust_1=c("Betty","Frank","Sally"),
                   cust_2=c("Joe","Wendy",NA)) )

#          address cust_1 cust_2
# 1:  123 Sunny Rd  Betty    Joe
# 2: 456 Cloudy Ln  Frank  Wendy
# 3:  789 Windy Dr  Sally     NA
Run Code Online (Sandbox Code Playgroud)

我想要cust_1 ... cust_n的列,其中n是每个地址的最大客户数.我并不关心订单 - Joe是否是cust_1而Betty是cust_2,反之亦然.

pivot-table r reshape2 data.table

10
推荐指数
2
解决办法
6317
查看次数

pandas pivot_table列名

对于这样的数据帧:

d = {'id': [1,1,1,2,2], 'Month':[1,2,3,1,3],'Value':[12,23,15,45,34], 'Cost':[124,214,1234,1324,234]}
df = pd.DataFrame(d)

     Cost  Month  Value  id  
0    124       1     12   1  
1    214       2     23   1  
2    1234      3     15   1  
3    1324      1     45   2  
4    234       3     34   2  
Run Code Online (Sandbox Code Playgroud)

我应用pivot_table

df2 =    pd.pivot_table(df, 
                        values=['Value','Cost'],
                        index=['id'],
                        columns=['Month'],
                        aggfunc=np.sum,
                        fill_value=0)
Run Code Online (Sandbox Code Playgroud)

得到df2:

       Cost            Value          
Month     1    2     3     1   2   3   
id                                  
1       124  214  1234    12  23  15
2      1324    0   234    45   0  34
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来格式化结果数据帧列名称,如

id     Cost1    Cost2     Cost3 Value1   Value2 …
Run Code Online (Sandbox Code Playgroud)

python pivot-table reshape pandas

10
推荐指数
2
解决办法
2万
查看次数