Python Pandas 错误 'could not convert string to float: 'A'' 解决方法
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'列中的所有字符串转换为分类类型,从而避免了将其作为浮点数进行计算的问题。
原文地址: https://www.cveoy.top/t/topic/kjiL 著作权归作者所有。请勿转载和采集!