读取Excel文件时:IndexError:单位置索引超出范围

0 投票
1 回答
48 浏览
提问于 2025-04-14 18:31

我想在一个Excel文件中,根据病人编号、消息类型和测试级别来筛选数据,然后计算“RPS”这一列中每个单元格列表的平均值。不过,我一直遇到错误。

在这里输入图片描述

import pandas as pd

# Verilerinizi içeren Excel dosyasını okuyun
df = pd.read_excel("C:/Users/bastu/busra_hoca/patient3-4/dot2.xlsx")

hasta_listesi = [1, 2, 3, 4, 5, 6]
tip_listesi = ["C1", "C2", "C3", "C4"]
test_levels = [0, 1, 2, 3, "n1", "n2"]

result = []

for hasta in hasta_listesi:
    for tip in tip_listesi:
        for test_level in test_levels:
            # Filtreleme işlemi
            filtre = (df['Patient'] == hasta) & (df['Message'] == tip) & (df['Test Levet'] == test_level)
            # filtre = (df['Hasta'] == hasta) & (df['Mesaj'] == tip) & (df['Test Level'] == test_level)
            filtrelenmis_veri = df[filtre]
            index_liste = filtrelenmis_veri.index.tolist()
            
            
            toplam = 0
            for i in list(range(len(index_liste))):
                
                toplam += filtrelenmis_veri["RPS"].iloc[index_liste[i]]
                          
            
            result.append({"Hasta": hasta,
                           "Elektrot": tip,
                           "Test Seviyesi": test_level,
                           "Toplam": toplam,
                           "İndex Len": len(index_liste)})

1 个回答

1

你能试试这个吗

import pandas as pd

# Read the Excel file containing your data
df = pd.read_excel("C:/Users/bastu/busra_hoca/patient3-4/dot2.xlsx")

hasta_listesi = [1, 2, 3, 4, 5, 6]
tip_listesi = ["C1", "C2", "C3", "C4"]
test_levels = [0, 1, 2, 3, "n1", "n2"]

    result = []
    
    for hasta in hasta_listesi:
        for tip in tip_listesi:
            for test_level in test_levels:
                # Filtering
                filter_condition = (df['Patient'] == hasta) & (df['Message'] == tip) & (df['Test Levet'] == test_level)
                filtered_data = df[filter_condition]
                
                # Calculate mean of 'RPS' column
                mean_rps = filtered_data["RPS"].mean()
                
                result.append({"Patient": hasta,
                               "Message": tip,
                               "Test Level": test_level,
                               "Mean RPS": mean_rps})
    
    # Create a DataFrame from the result list
    result_df = pd.DataFrame(result)
    print(result_df)

撰写回答