我有一个带有"A"和"B"列的多索引数据框.
是否有一种方法可以通过过滤多索引的一列来选择行,而无需将索引重置为单列索引.
例如.
# has multi-index (A,B)
df
#can I do this? I know this doesn't work because the index is multi-index so I need to specify a tuple
df.ix[df.A ==1]
Run Code Online (Sandbox Code Playgroud) 是否可以通过多索引级别之一对多索引(2级)pandas数据帧进行分组?
我知道这样做的唯一方法是在multiindex上reset_index,然后再次设置索引.我相信有更好的方法可以做到,我想知道如何做.
numpy数组(比方说X)的形状为(N,1)和(N,)有什么区别.它们都不是Nx1矩阵吗?我问的原因是因为有时计算会返回一个或另一个.
我有一个带有 ID 和时间戳的数据框作为多索引。数据框中的索引按 ID 和时间戳排序,我想为每个 ID 选择最新的时间戳。例如:
IDs timestamp value
0 2010-10-30 1
2010-11-30 2
1 2000-01-01 300
2007-01-01 33
2010-01-01 400
2 2000-01-01 11
Run Code Online (Sandbox Code Playgroud)
所以基本上我想要的结果是
IDs timestamp value
0 2010-11-30 2
1 2010-01-01 400
2 2000-01-01 11
Run Code Online (Sandbox Code Playgroud)
在熊猫中执行此操作的命令是什么?
我在pandas中有一个多索引数据框,其中index是ID和时间戳.我希望能够计算每个ID的时间序列滚动总和,但我似乎无法弄清楚如何在没有循环的情况下完成它.
content = io.BytesIO("""\
IDs timestamp value
0 2010-10-30 1
0 2010-11-30 2
0 2011-11-30 3
1 2000-01-01 300
1 2007-01-01 33
1 2010-01-01 400
2 2000-01-01 11""")
df = pd.read_table(content, header=0, sep='\s+', parse_dates=[1])
df.set_index(['IDs', 'timestamp'], inplace=True)
pd.stats.moments.rolling_sum(df,window=2
Run Code Online (Sandbox Code Playgroud)
而这个输出是:
value
IDs timestamp
0 2010-10-30 NaN
2010-11-30 3
2011-11-30 5
1 2000-01-01 303
2007-01-01 333
2010-01-01 433
2 2000-01-01 411
Run Code Online (Sandbox Code Playgroud)
注意边缘处的ID 0和1以及1和2之间的重叠(我不希望这样,弄乱我的计算).解决此问题的一种可能方法是在ID上使用groupby,然后循环遍历该groupby,然后应用rolling_sum.
我确信有一个函数可以帮助我在不使用循环的情况下执行此操作.
你能告诉我这段代码有什么问题吗?我在接受采访时被问到这一点,我不确定它有什么问题
tClass是一个带有printSomething方法的测试类,可以打印tClass的成员.
tClass * A = new tClass();
f(A);
A->printSomething();
auto_ptr<tClass> * B = new tClass();
f(B);
B-> printSomething();
Run Code Online (Sandbox Code Playgroud)
或者这是一个棘手的问题.
python ×5
pandas ×4
dataframe ×2
arrays ×1
auto-ptr ×1
c++ ×1
dimensions ×1
multi-index ×1
numpy ×1