Python Pandas-如何将数据帧转换为新的数据类型,但忽略标题/第一行

Python Pandas-如何将数据帧转换为新的数据类型,但忽略标题/第一行,python,pandas,Python,Pandas,我正在尝试将数据帧转换为float类型,以便使用它进行一些计算。但是,我有一个标题/第一行,其中包含字符串,因此当我尝试将其转换为float时,会出现以下错误: ValueError: could not convert string to float: 'column1' 我试过: file_float = file.astype(float) 并尝试分别转换列: file['column1'] = file.column1.astype(float) file['column2'] =

我正在尝试将数据帧转换为float类型,以便使用它进行一些计算。但是,我有一个标题/第一行,其中包含字符串,因此当我尝试将其转换为float时,会出现以下错误:

ValueError: could not convert string to float: 'column1'
我试过:

file_float = file.astype(float)
并尝试分别转换列:

file['column1'] = file.column1.astype(float)
file['column2'] = file.column2.astype(float)
然而,它们都有相同的错误。因此,我需要一种将列转换为float类型的方法,并忽略第一行,因为它包含column1和column2,所以无法转换为float。
谢谢

如果您的数据是int类型的,一个非常愚蠢的方法是

file_float = file + 0.0

据我所知,除了第一行包含字符串之外,您有一个充满数字的数据帧。有几种方法可以解决这个问题。首先,您可以以不同的方式读取数据,例如使用
pd.read\u csv
中的
标题
skiprows
参数或任何用于读取数据的参数

但是看看你现在的处境,你可以做些什么。我创建了一个小型示例数据框(下次提问时也应该这样做,因为它有助于回答问题的人)

我认为您可能希望保留标题作为列的名称。如果没有,请跳过下一个代码段

df.columns = df.iloc[:1].values.tolist()[0]

   header1  header2
0  header1  header2
1        2        5
2        3        6
最后,有两种方法可以消除该行。任何一个都可以工作(不要同时使用,否则会丢失两行):

现在,您可以使用将数据帧转换为浮动:

df = df.astype(float)

   header1  header2
1      2.0      5.0
2      3.0      6.0
编辑: 如果问题不是第一行(而是某个带字符串的未知行),请尝试以下操作:

for col in df.columns:
    df[col] = pd.to_numeric(df[col], errors='force')
最后,要消除丢失的值(在字符串所在的位置创建),可以执行以下操作:

df.dropna(inplace=True)

如何创建数据框?我的数据框当前为string类型,但需要将其转换为float,这是否可行?我尝试了此操作,但仍然得到相同的错误:ValueError:无法将string转换为float:“column1”我不确定是否理解。您的数据是字符串形式的吗,例如“45”(与45相反)?是的,我需要绕过第一行,因为它无法将column1转换为浮点。我想试着按列进行,例如file['column1']=file.column1+0.0是否可以指定header=None而不在中读取它。由于我的数据帧是在代码中创建的,您可以执行如下操作:file_no_header=file(header=None)@Harry Maguire如果代码生成数据帧,您可以调整生成过程以不创建头。但是如果你不告诉我你在做什么,我就帮不了你。另外,在运行我的代码时,您到底遇到了什么错误?ValueError:无法将字符串转换为浮点:“column1”@Harry Maguire您对它的描述让我觉得第一行就是问题所在。事实似乎并非如此。我编辑了我的答案,想找到一种摆脱所有列中所有字符串的方法。请注意,您可能会丢失一些条目。很抱歉,我仍然收到相同的错误值错误:无法将字符串转换为浮点:“column1”
for col in df.columns:
    df[col] = pd.to_numeric(df[col], errors='force')
df.dropna(inplace=True)