【问题标题】:Pandas show correlation between three variables熊猫显示三个变量之间的相关性
【发布时间】:2021-03-03 06:39:53
【问题描述】:
我有一个看起来像这样的 pandas 数据框:
CRIME ZIP CODE VICTIM NAME
0 Murder 90210 Mark
1 Theft 70024 John
2 Robbery 34567 Matthew
3 Assault 00345 Luc
4 ..... ..... .....
我需要查明犯罪受害者人数与其邮政编码之间是否存在相关性。更具体地说,如果邮政编码中的人有遭受更多犯罪的趋势,我需要在图表上绘制。
如何使用 pandas 和 seaborn 做到这一点?
【问题讨论】:
标签:
pandas
dataframe
statistics
seaborn
correlation
【解决方案1】:
我将首先查看摘要统计信息。 (df 是你的数据框)
df[["CRIME", "ZIP CODE"]].describe()
那我看看模式
df.groupby('CRIME')['ZIP CODE'].agg(pd.Series.mode)
【解决方案2】:
可能类似于下面的示例数据:
import pandas as pd
import seaborn as sns
import numpy as np
df = pd.DataFrame({'CRIME':np.random.choice(['Murder','Theft','Robbery'],100),
'ZIP CODE':np.random.choice(['0','1','2','3'],100),
'NAME':np.arange(100)})
这显示了按邮政编码的犯罪数量(不考虑类型):
df["ZIP CODE"].value_counts().plot(kind="bar")
这显示了每个犯罪的比例(按邮编):
pd.crosstab(df['CRIME'],df['ZIP CODE'],normalize="index").plot.barh(stacked=True)