我试图从使用数据透视表缓存的数据透视表中提取源数据并将其放入空白电子表格.我尝试了以下但它返回应用程序定义或对象定义的错误.
ThisWorkbook.Sheets.Add.Cells(1,1).CopyFromRecordset ThisWorkbook.PivotCaches(1).Recordset
Run Code Online (Sandbox Code Playgroud)
文档表明PivotCache.Recordset是一个ADO类型,所以这应该工作.我确实在引用中启用了ADO库.
有关如何实现这一目标的任何建议?
我正在尝试将包含字符串的表作为结果.
import pandas as pd
df1 = pd.DataFrame({'index' : range(8),
'variable1' : ["A","A","B","B","A","B","B","A"],
'variable2' : ["a","b","a","b","a","b","a","b"],
'variable3' : ["x","x","x","y","y","y","x","y"],
'result': ["on","off","off","on","on","off","off","on"]})
df1.pivot_table(values='result',rows='index',cols=['variable1','variable2','variable3'])
Run Code Online (Sandbox Code Playgroud)
但我明白了:DataError: No numeric types to aggregate.
当我将结果值更改为数字时,这可以正常工作:
df2 = pd.DataFrame({'index' : range(8),
'variable1' : ["A","A","B","B","A","B","B","A"],
'variable2' : ["a","b","a","b","a","b","a","b"],
'variable3' : ["x","x","x","y","y","y","x","y"],
'result': [1,0,0,1,1,0,0,1]})
df2.pivot_table(values='result',rows='index',cols=['variable1','variable2','variable3'])
Run Code Online (Sandbox Code Playgroud)
我得到了我需要的东西:
variable1 A B
variable2 a b a b
variable3 x y x y x y
index
0 1 NaN NaN NaN NaN NaN
1 NaN NaN 0 NaN NaN NaN
2 …Run Code Online (Sandbox Code Playgroud) 我有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的表中,但它不起作用.谢谢你的时间.
对于这样的数据帧:
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) 我知道如何在mysql中创建一个数据透视表(参见下面的代码示例),但是如果数据透视表中的列数非常大并且我不想输入2000左右的标记名怎么办? - 有没有办法生成该列表?提前谢谢了.
drop table pivot;
create table pivot SELECT time,
max(if(tagname = 'a', value, null)) AS 'a',
max(if(tagname = 'b', value, null)) AS 'b',
max(if(tagname = 'c', value, null)) AS 'c'
FROM test where tagname in ('a','b','c')
GROUP BY time;
select * from pivot;
Run Code Online (Sandbox Code Playgroud) JOB ENAME
-------- ----------
ANALYST SCOTT
ANALYST FORD
CLERK SMITH
CLERK ADAMS
CLERK MILLER
CLERK JAMES
MANAGER JONES
MANAGER CLARK
MANAGER BLAKE
PRESIDENT KING
SALESMAN ALLEN
SALESMAN MARTIN
SALESMAN TURNER
SALESMAN WARD
Run Code Online (Sandbox Code Playgroud)
我想格式化结果集,以便每个作业都有自己的列:
CLERKS ANALYSTS MGRS PREZ SALES
------ -------- ----- ---- ------
MILLER FORD CLARK KING TURNER
JAMES SCOTT BLAKE MARTIN
ADAMS JONES WARD
SMITH
Run Code Online (Sandbox Code Playgroud)
我试过了
SELECT ANALYST, CLERK, MANAGER, PRESIDENT, SALESMAN from
(
SELECT ename, job from emp
) as st
pivot
(
SELECT ename
FOR job in …Run Code Online (Sandbox Code Playgroud) 最近我学习了如何使用VBA在Excel中自动创建数据透视表,并且该Excel.Range.Group()方法的实现让我感到奇怪.第四个参数Periods采用7个元素的布尔值数组来指示分组是按秒,分钟,小时,天,月,季度还是年.通常情况下,您可以通过使用一种Enum类型来完成这样的事情,该类型的成员可以Or一起表示已打开一个或多个选项 - 该MsgBox函数就是一个很好的例子.
例如,我原本期望使用更像这样......
MyPivotTable.DataRange.Cells(1).Group Periods:=vbGroupPeriods.Days Or _
vbGroupPeriods.Months
Run Code Online (Sandbox Code Playgroud)
代替...
MyPivotTable.DataRange.Cells(1).Group Periods:=Array(False, False, False, _
True, True, False, False)
Run Code Online (Sandbox Code Playgroud)
我环顾四周试图理解为什么用它来完成Array,但迄今为止空手而归.所以,我的问题是为什么这样做?我有没有看到一些限制?这是个人的个人选择吗?还是只是一个谜?不要试图抱怨,只是想了解.
我目前正致力于Excel的自动化,并添加了这样我已经很好地利用了Apache POI库.
由于我在excel工作簿中存储了大量数据,因此我正在尝试创建数据透视表.
有没有办法使用POI创建数据透视表?
我的要求是我需要在新的Excel工作簿或我存储数据的同一工作簿中创建数据透视表.
我有一个将用户连接到工作区的数据透视表.在数据透视表上,我还有一个role列,它定义了该工作空间的用户角色.我可以在数据透视表中的角色上提供Accessor(Getter)和Mutator(Setter)方法吗?我一直在努力寻找,但是雄辩的数据透视表的细节非常稀少.
我不确定是否必须设置自定义枢轴模型?如果我这样做,一个例子将是非常棒的,因为关于枢轴模型的文档非常基础.
谢谢.
我已经计算了一周中的一系列总计提示,并将其附加到totalspt数据框的底部.
我已将数据框设置index.name为totalspt无.
但是,当数据帧显示默认的0,1,2,3索引时,它不会在索引正上方的左上角显示默认的空单元格.
我怎么能在数据帧中使这个单元格为空?
total_bill tip sex smoker day time size tip_pct
0 16.54 1.01 F N Sun D 2 0.061884
1 12.54 1.40 F N Mon D 2 0.111643
2 10.34 3.50 M Y Tue L 4 0.338491
3 20.25 2.50 M Y Wed D 2 0.123457
4 16.54 1.01 M Y Thu D 1 0.061064
5 12.54 1.40 F N Fri L 2 0.111643
6 10.34 3.50 F Y Sat D 3 …Run Code Online (Sandbox Code Playgroud)