我从表中的SQL查询中获取数据到我的熊猫数据框。数据如下所示:
group phone_brand
0 M32-38 小米
1 M32-38 小米
2 M32-38 小米
3 M29-31 小米
4 M29-31 小米
5 F24-26 OPPO
6 M32-38 酷派
7 M32-38 小米
8 M32-38 vivo
9 F33-42 三星
10 M29-31 华为
11 F33-42 华为
12 F27-28 三星
13 M32-38 华为
14 M39+ 艾优尼
15 F27-28 华为
16 M32-38 小米
17 M32-38 小米
18 M39+ 魅族
19 M32-38 小米
20 F33-42 三星
21 M23-26 小米
22 M23-26 华为
23 M27-28 三星
24 M29-31 小米
25 M32-38 三星
26 M32-38 三星
27 F33-42 三星
28 M32-38 三星
29 M32-38 三星
... ... ...
74809 M27-28 华为
74810 M29-31 TCL
现在我想从这两列中找出相关性和频率,并用Matplotlib将其可视化。我试过这样的方法:
DataFrame.plot(style='o')
plt.show()
现在,我如何以最简单的方式将这种关联可视化呢?
除了piRSquared非常清楚地解释的方法之外,您还可以使用LabelEncoder
将值转换为数字形式,以确保机器正确解释功能。
#Import label encoder
from sklearn.preprocessing import LabelEncoder
#label_encoder object
le = LabelEncoder()
#Fit label encoder and return encoded labels
df['group'] = le.fit_transform(df['group'])
df['phone_brand'] = le.fit_transform(df['phone_brand'] )
#Finding correlation
df.corr()
#output for first 10 rows
group phone_brand
group 1.00000 0.67391
phone_brand 0.67391 1.00000
在应用了< code>LabelEncoder之后,我们的数据帧由此转换而来
group phone_brand
0 M32-38 小米
1 M32-38 小米
2 M32-38 小米
3 M29-31 小米
4 M29-31 小米
5 F24-26 OPPO
6 M32-38 酷派
7 M32-38 小米
8 M32-38 vivo
9 F33-42 三星
10 M29-31 华为
对此
group phone_brand
0 3 4
1 3 4
2 3 4
3 2 4
4 2 4
5 0 0
6 3 5
7 3 4
8 3 1
9 1 2
10 2 3
对于多列,您可以浏览答案。
使用 pandas.factorize() 方法,该方法可以通过标识不同的值来获取数组的数字表示形式。
要快速获取相关性,请执行以下操作:
df.apply(lambda x: x.factorize()[0]).corr()
group phone_brand
group 1.000000 0.427941
phone_brand 0.427941 1.000000
热图
import seaborn as sns
sns.heatmap(pd.crosstab(df.group, df.phone_brand))
我有两个具有多列的数据帧。 我想比较df1['id']和df2['id'],并返回一个新的df,其中列['correct_id']具有匹配值。例子: df1: df2 这是我的代码: 我得到的结果是: 预期输出: 我该怎么解决这个问题拜托
我正在尝试连接到数据帧。它们看起来像这样 期望的最终目标是: 我一直试图使用pd.merge和。连接函数与on='外'设置不成功
我需要将两个数据帧和一个接一个地连接起来,它们具有相同的行数(),而不考虑任何键。此函数类似于
我肯定错过了一些简单的东西。尝试合并熊猫中的两个数据帧,它们的列名基本相同,但右边的数据帧有一些左边没有的列,反之亦然。 我已尝试使用外部联接进行联接: 但这会产生: 我还指定了一个要连接的列(例如,on="id"),但这会重复所有列,除了"id",如attr_1_x、attr_1_y,这并不理想。我还传递了整个列列表(有很多)到on: 其产生: 我错过了什么?我想得到一个附加了所有行的df,并且
我有两个系列和具有相同的(非连续的)索引。如何将和组合为DataFrame中的两列,并将其中一个索引保留为第三列?
我有一个大熊猫时间帧,它有一个列,这个时间格式:例如(小时,分钟,秒)。这些值是通过熊猫从我的SQL数据库中提取的,具有以下查询函数 我想将这些时间值转换为分钟(或秒),因为我想对作为我的持续时间变量的值执行线性回归。我该怎么做呢?是否有一种方法可以将这些值(例如,将<code>14:30:00 示例数据帧: