python从100个城市中找出两个指标相关性系数最大且显著的城市
时间: 2024-03-23 22:39:41 浏览: 51
假设你已经有了100个城市的两个指标的数据,可以按照以下步骤使用Python找出两个指标相关性系数最大且显著的城市:
1. 导入所需的库:
```python
import pandas as pd
from scipy.stats import pearsonr
```
2. 读取数据并计算相关系数:
```python
data = pd.read_csv('data.csv') # 读取数据
# 假设数据中第一列为城市名称,第二列为指标1,第三列为指标2
cities = data.iloc[:, 0] # 获取城市名称
x = data.iloc[:, 1] # 获取指标1的数据
y = data.iloc[:, 2] # 获取指标2的数据
r, p = pearsonr(x, y) # 计算整个数据集的相关系数及其显著性水平
print('整个数据集的相关系数 r = {:.2f}'.format(r))
print('整个数据集的显著性水平 p = {:.2f}'.format(p))
```
其中,r表示整个数据集的相关系数,p表示整个数据集的显著性水平。
3. 遍历所有城市,计算相关系数并找出最大值:
```python
max_r = 0 # 最大相关系数
max_p = 0 # 最大相关系数对应的显著性水平
max_city1 = '' # 相关系数最大的城市1
max_city2 = '' # 相关系数最大的城市2
for i in range(len(cities)):
for j in range(i+1, len(cities)):
x1 = x[i]
x2 = x[j]
y1 = y[i]
y2 = y[j]
r, p = pearsonr([x1, x2], [y1, y2])
if p < 0.05 and abs(r) > abs(max_r):
max_r = r
max_p = p
max_city1 = cities[i]
max_city2 = cities[j]
print('相关系数最大的城市对为 {}、{},相关系数为 {:.2f},显著性水平为 {:.2f}'.format(max_city1, max_city2, max_r, max_p))
```
其中,我们遍历所有城市的两两组合,计算它们之间的相关系数及其显著性水平。如果显著性水平p小于0.05且相关系数的绝对值大于当前最大相关系数的绝对值,则更新最大相关系数及其对应的城市对。
希望以上内容能够帮助到你!
阅读全文