Python Pandas 错误 'could not convert string to float: 'A'' 解决方法

该错误通常发生在尝试将一个字符串转换为浮点数时,因为该字符串不是有效的数字格式。在这种情况下,错误可能是由于数据中存在非数字字符而导致的。

在代码中,错误可能是由于将字符串'name'列作为浮点数进行计算而导致的。可以通过将该列转换为分类类型来解决该问题,如下所示:

import pandas as pd
import os
df = pd.read_csv("./2023_2_20No2/2023_2_20_19.csv", encoding='utf-8')
df = df.iloc[:, 1:18]
df_tumor = df[df['name'] == 'tumor']
df_peritumor = df[df['name'] == 'peritumor']

# 创建字典存储数据
tumor_dict = {}
peritumor_dict = {}

# 循环计算中位数并存储到字典中
for name in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']:
    tumor_name = df_tumor[df_tumor['property'] == name]
    peritumor_name = df_peritumor[df_peritumor['property'] == name]
    tumor_dict[name] = tumor_name.iloc[:, 1:34].median()
    peritumor_dict[name] = peritumor_name.iloc[:, 1:34].median()

# 解决错误
df['name'] = df['name'].astype('category')

print('Tumor median values:')
print(tumor_dict)
print('Peritumor median values:')
print(peritumor_dict)

这将把'name'列中的所有字符串转换为分类类型,从而避免了将其作为浮点数进行计算的问题。

Python Pandas 错误 'could not convert string to float: 'A'' 解决方法

原文地址: https://www.cveoy.top/t/topic/kjiL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录