import pandas as pd
import numpy as np
# 读取Excel文件
df = pd.read_excel('数据预处理测试集.xlsx')
# 确保数据是float类型
data = df['数据'].astype(float)
# 计算特定数据的秩
def rank_of_value(data, value):
# 对数据进行排序
sorted_data = np.sort(data)
# 找到值在排序数据中的位置
index = np.searchsorted(sorted_data, value)
# 如果值不在数据集中,返回None
if index == len(sorted_data) or sorted_data[index] != value:
return None
# 计算秩,考虑到可能有重复的值
rank = (np.sum(sorted_data <= value) + np.sum(sorted_data < value)) / 2.0
return rank
# 特定数据
value_to_find_rank = 17.0707
# 计算秩
rank = rank_of_value(data, value_to_find_rank)
# 输出结果,保留一位小数
print(f"数据 {value_to_find_rank} 的秩是: {rank:.1f}")