防止打印df列的1级/值

2024-09-28 21:38:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用python进行数据可视化。我搜索过谷歌&;stackoverflow,但无法找到问题的答案。希望您能够帮助:

我有一个每个人都有几个数据行(id)的熊猫df,还有另外两个名为StimCat的列(3个级别:a、B、C)&;rt(连续值、反应时间),例如:

   id  StimCat rt
0  1     A    596
1  1     B    657
2  1     C    200
3  1     C    354
4  1     A    164
5  2     A    164
6  2     B    343
7  2     B    264
8  2     A    456
9  2     C    523 
10 2     C    241

我编写了以下代码来绘制按id分组的每个StimCat级别的平均数据:

fig, ax = plt.subplots(figsize=(15,7))            
df.groupby(['id','StimCat']).mean()['rt'].unstack().plot.bar(ax=ax)

然而,我实际上只想为StimCat绘制3个级别中的2个,即A和B,但完全忽略了绘图中的级别C

有没有关于我如何做到这一点的提示?或者,如果以前有人问过这样的问题(我还没有找到),你可以给我指出相应的条目?谢谢大家!!!!我真的很感激


Tags: 数据答案代码iddf可视化fig绘制
1条回答
网友
1楼 · 发布于 2024-09-28 21:38:24

如果你不打算绘制它,不要计算它。使用query/boolean索引/eval/isin并将其过滤掉

fig, ax = plt.subplots(figsize=(15,7)) 

df.query('StimCat != "C"')\
  .groupby(['id','StimCat'])\
  .mean()['rt']\
  .unstack()\
  .plot.bar(ax=ax)

enter image description here

如果您的目标是排除多个此类类别,请尝试以下操作-

cat_to_exclude = ['A', 'C'] # filter out categories A and C, for example
df = df.query('StimCat not in @cat_to_exclude')

df

   id StimCat   rt
1   1       B  657
6   2       B  343
7   2       B  264

然后执行groupby

相关问题 更多 >