1
后我想枢转数据帧(从模拟记录)后到子集的以下数据帧:子集上大熊猫数据帧使用pivot_table
import pandas as pd
df = pd.DataFrame(
{'runid' : [26 , 26 , 26 , 26 , 26 , 26 , 27 , 27 , 27 , 27 , 27 , 27 ],
'time' : [0 , 1 , 1 , 3 , 5 , 7 , 0 , 0 , 0 , 2 , 4 , 5 ],
'process': ['p1', 'p2', 'p2', 'p1', 'p1', 'p2', 'p1', 'p1', 'p2', 'p2', 'p2', 'p1'],
'state' : ['a' , 'a' , 'b' , 'b' , 'c' , 'c' , 'a' , 'b' , 'a' , 'b' , 'c' , 'c' ]
})
然后转动数据帧:
data = pd.pivot_table(df, index=['runid', 'process'], columns=['state'], values=['time'])
输出:
time
state a b c
runid process
26 p1 0 3 5
p2 1 1 7
27 p1 0 0 5
p2 0 2 4
我该如何这个pivoted DataFrame,以便runid 26和列a和b被选中(这样我就可以用runid 26从所有进程中减去a,并存储这些值用于分析)。
谢谢!我该如何添加一个添加列'bminusa'到这个子集的值减去一个? – Rene
@Rene'sub_df.time.b - sub_df.time.a'?您应该查看文档的[MultiIndex/Advanced Indexing](http://pandas.pydata.org/pandas-docs/stable/advanced.html)部分。 – miradulo