欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

python corrwith_python – pandas.DataFrame corrwith()方法

发布时间:2025/4/5 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python corrwith_python – pandas.DataFrame corrwith()方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我最近开始和熊猫一起工作.任何人都可以用Series和DataFrame来解释函数.corrwith()的行为差异吗?

假设我有一个DataFrame:

frame = pd.DataFrame(data={'a':[1,2,3], 'b':[-1,-2,-3], 'c':[10, -10, 10]})

我想要计算特征’a’和所有其他特征之间的相关性.

我可以通过以下方式完成:

frame.drop(labels='a', axis=1).corrwith(frame['a'])

结果将是:

b -1.0

c 0.0

但非常相似的代码:

frame.drop(labels='a', axis=1).corrwith(frame[['a']])

生成绝对不同且不可接受的表格:

a NaN

b NaN

c NaN

所以,我的问题是:为什么在DataFrame作为第二个参数的情况下,我们得到如此奇怪的输出?

解决方法:

我认为你在寻找什么:

假设您的框架是:

frame = pd.DataFrame(np.random.rand(10, 6), columns=['cost', 'amount', 'day', 'month', 'is_sale', 'hour'])

您希望“费用”和“金额”列与每个组合中的所有其他列相关联.

focus_cols = ['cost', 'amount']

frame.corr().filter(focus_cols).drop(focus_cols)

回答你的问题:

Compute pairwise

correlation between rows or columns of two DataFrame objects.

Parameters:

other : DataFrame

axis : {0 or ‘index’, 1 or ‘columns’},

default 0 0 or ‘index’ to compute column-wise, 1 or ‘columns’ for row-wise drop : boolean, default False Drop missing indices from

result, default returns union of all Returns: correls : Series

corrwith的行为类似于add,sub,mul,div,因为它希望找到一个DataFrame或一个正在传递的系列,尽管文档只说DataFrame.

当其他是系列时,它播放该系列并沿轴指定的轴匹配,默认为0.这就是以下工作的原因:

frame.drop(labels='a', axis=1).corrwith(frame.a)

b -1.0

c 0.0

dtype: float64

当other是DataFrame时,它将匹配轴指定的轴并关联由另一个轴标识的每个对.如果我们这样做:

frame.drop('a', axis=1).corrwith(frame.drop('b', axis=1))

a NaN

b NaN

c 1.0

dtype: float64

只有c是共同的,只有c计算了它的相关性.

在您指定的情况下:

frame.drop(labels='a', axis=1).corrwith(frame[['a']])

frame [[‘a’]]是一个DataFrame,因为[[‘a’]]并且现在由DataFrame规则播放,其中的列必须与其相关的列匹配.但是你明确地从第一帧中删除了一个然后与一个只有一个的数据帧相关联.结果是每列的NaN.

标签:python,pandas,dataframe

来源: https://codeday.me/bug/20191008/1870198.html

总结

以上是生活随笔为你收集整理的python corrwith_python – pandas.DataFrame corrwith()方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。