Python groupby复制dataframe并创建另一个水平表示groupby结果的dataframe
我有一个名为usabledata的pandas数据框架,它有['marker'、'action'、'id'列]Python groupby复制dataframe并创建另一个水平表示groupby结果的dataframe,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个名为usabledata的pandas数据框架,它有['marker'、'action'、'id'列] usabledata = pd.DataFrame(columns=['marker','action','id']) 我在usabledata数据帧上运行了以下命令: counts = usabledata.groupby(['marker','action']).count() counts = counts.drop(['marker','action']) print cou
usabledata = pd.DataFrame(columns=['marker','action','id'])
我在usabledata数据帧上运行了以下命令:
counts = usabledata.groupby(['marker','action']).count()
counts = counts.drop(['marker','action'])
print counts
id
marker action
1 A 377
B 224
C 9881
D 149946
2 A 481
B 397
C 7468
D 147581
3 A 538
B 458
D 145916
现在,我想用以下格式创建熊猫数据帧:
Marker A B C D
1 377 224 9881 149946
2 481 397 7468 147581
3 538 458 0 145916
是否可以使用ipython笔记本中的pandas数据框进行此操作
此外,在获得所需输出后是否可以删除列,例如“C”列
同样问题中的另一个疑问是,在获得所需输出后,如何添加另一列“分数”,它只是列“a”和“D”的比率?IIUC,然后您可以调用:
IIUC然后您可以通过以下方式拨打:
谢谢@EdChum你能检查一下编辑并告诉我这是否可行吗?你可以调用
drop(columns=['C'])
或者直接过滤掉gp.unstack().fillna(0).ix[:,['A','B','D']
我这样做是为了让删除生效。unstacked=gp.unstack().fillna(0)unstacked.drop(unstacked['C']))谢谢@EdChum你能检查一下编辑并告诉我这是否可行吗?你可以调用drop(columns=['C'])
或者直接过滤掉gp.unstack().fillna(0).ix[:,['A','B','D']
我这样做是为了让删除生效。unstacked=gp.unstack().fillna(0)unstacked.drop(unstacked['C']))@EdChum你能帮忙吗?@EdChum你能帮忙吗?
In [124]:
gp.unstack().fillna(0)
Out[124]:
action
marker A B C D
id
1 377 224 9881 149946
2 481 397 7468 147581
3 538 458 0 145916