![](/img/trans.png)
[英]How do I add a column to a pandas dataframe which has the highest value in a range but applying it to every row?
[英]Python: How do I write a function to determine which variable in a dataframe has the highest absolute correlation with a specified column?
我想写一个 function 来确定 dataframe 中的哪个变量与特定列的绝对相关性最高。 但是,我很难从相关矩阵中获取列名。
假设我的数据df
如下:
地址 | 尺寸 | 租金价格 | number_of_浴室 | 房间的数量 |
---|---|---|---|---|
东方 | 12 | 3400 | 2 | 4 |
东北 | 99 | 4200 | 4 | 4 |
南 | 99 | 4000 | 5 | 5 |
我使用ab_col_matrix = abs(df.corr())
来生成类似的相关矩阵,列名位于矩阵的顶部和左侧。
1 value value value
value 1 value value
value value 1 value
value value value 1
假设我对与大小列相关的最高列感兴趣。 我的想法是对列进行排序并取第一行并返回具有最高值的列名。
所以我尝试了, sorted = ab_col_matrix.sort_values('size', ascending = False)
\
然后我尝试选择最高的sorted['size'][1]
但它只返回值本身而不是列,我很困惑如何访问它。 这里我使用[1]
因为[0]
将返回 1,这是它自己列的相关值。
我将非常感谢任何帮助,我可以获得更多关于如何实现这一目标的知识。
您可以简单地 select 您想要的变量的列,然后对行进行排序:
ab_col_matrix['size'].sort_values(ascending=False)
size 1.000000
rent_price 0.970725
number_of_bathrooms 0.944911
number_of_rooms 0.500000
Name: size, dtype: float64
然后,您可以 select 与以下最高相关值:
ab_col_matrix['size'].sort_values(ascending=False).index[1]
'rent_price'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.