Pandas Pyplot:计算散点图的列

时间:2016-11-23 10:03:10

标签: python pandas matplotlib etl

我有一个包含以下列的数据框:

df = pd.read_csv('edtech.csv')
print(df.head())

   Unnamed: 0                                         Title      Date Country  \
0           3     Apple acquires edtech company LearnSprout  15-01-16      US   
1           9  LearnLaunch Accelerator launches new program  15-01-16      US   
2          15                   Flex Class raises financing  15-01-16   India   
3          16               Grovo raises Series C financing  15-01-16      US   
4          17                    Myly raises seed financing  15-01-16   India   

                          Segment  
0             Tools for Educators  
1     Accelerators and Incubators  
2  Adult and Continuing Education  
3               Platforms and LMS  
4                     Mobile Apps  
>>> 

现在,我想通过在一个轴上映射“Country”而在另一个轴上映射“Segment”来创建散点图。例如。对于美国和“教育工具”,图表上会有一个点。

如何转换此数据框,以便我有数字,我可以将其渲染到散点图中?我可以通过计数得到Tableau中的图表,但不知道它背后的确切工作。

如果有人能帮助我,我将不胜感激。 TIA

1 个答案:

答案 0 :(得分:1)

我不知道是否存在使用两个非数字分类变量创建散点图的可能性,最接近你想要的东西是使用groupby创建计数,重塑数据使用pivot,使用heatmap制作seaborn

import pandas as pd
import seaborn as sns

df = pd.read_csv('edtech.csv')
dd = df[['Country','Segment','Title']]
gg = dd.groupby(['Country','Segment'],as_index=False).count().rename(columns={"Title":"Number"})
gp = gg.pivot(columns="Segment",index="Country",values="Number").fillna(0.0)
sns.heatmap(gp,cbar=False)