Python 防止打印df列的1级/值
我刚刚开始使用python进行数据可视化。我已经搜索了google&stackoverflow,但是找不到我问题的答案。希望您能够帮助: 我有一个每个人(id)有几个数据行的df,还有另外两个名为StimCat(3个级别:a、B、C)和rt(连续值、反应时间)的列,例如:Python 防止打印df列的1级/值,python,pandas,plot,Python,Pandas,Plot,我刚刚开始使用python进行数据可视化。我已经搜索了google&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
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
有没有关于我如何做到这一点的提示?或者,如果以前有人问过这样的问题(我还没有找到),你可以给我指出相应的条目?谢谢大家!!!!我真的很感激 如果你不打算绘制它,就不要计算它。使用
query
/boolean index/eval
/isin
并将其过滤掉
fig, ax = plt.subplots(figsize=(15,7))
df.query('StimCat != "C"')\
.groupby(['id','StimCat'])\
.mean()['rt']\
.unstack()\
.plot.bar(ax=ax)
如果您的目标是排除多个此类类别,请尝试以下操作-
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