首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >交叉表合并后在python中如何绘制?

交叉表合并后在python中如何绘制?
EN

Stack Overflow用户
提问于 2018-07-26 06:15:34
回答 1查看 0关注 0票数 0

我想绘制我的DataFrame,我先得到了这个df。

代码语言:txt
复制
id|project|categories|rating 
1 | a     | A        | 1
1 | a     | B        | 1
1 | a     | C        | 2
1 | b     | A        | 1
1 | b     | B        | 1
2 | c     | A        | 1
2 | c     | B        | 2

使用此代码:df.groupby('id').project.nunique().reset_index().merge( pd.crosstab(df.id, df.categories).reset_index())现在得到了这个DF:

代码语言:txt
复制
id | project | A | B | C |
 1 | 2       | 2 | 2 | 1 |
 2 | 1       | 1 | 1 | 0 |

现在我想画一下DF。我想展示一下,如果项目的数量取决于受影响的类别有多少,或者受影响的类别有哪些。我知道如何可视化数据格式,但是在交叉表和合并之后,它不像往常那样工作了。

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 15:58:12

我使用以下代码复制了你的数据:

代码语言:txt
复制
import pandas as pd

df = pd.DataFrame({'id': [1, 1, 1, 1, 1, 2, 2,],\
                  'project': ['a', 'a', 'a', 'b', 'b', 'c', 'c'],\
                  'categories': ['A', 'B', 'C', 'A', 'B', 'A', 'B'],\
                  'rating': [1, 1, 2, 1, 1, 1, 2]})

现在数据看起来像这样

代码语言:txt
复制
  categories  id project  rating
0          A   1       a       1
1          B   1       a       1
2          C   1       a       2
3          A   1       b       1
4          B   1       b       1
5          A   2       c       1
6          B   2       c       2

如果要将“类别计数”绘制为“项目计数”的函数,则如下所示。

代码语言:txt
复制
import matplotlib.pyplot as plt

# this line is your code
df2 = df.groupby('id').project.nunique().reset_index().merge(pd.crosstab(df.id, df.categories).reset_index())

plt.scatter(df2.project, df2.A, label='A', alpha=0.5)
plt.scatter(df2.project, df2.B, label='B', alpha=0.5)
plt.scatter(df2.project, df2.C, label='C', alpha=0.5)

plt.xlabel('project count')
plt.ylabel('category count')
plt.legend()
plt.show()

你会得到这个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档