Python 仅更改数据帧的一列

Python 仅更改数据帧的一列,python,pandas,dataframe,Python,Pandas,Dataframe,我将熊猫与Python 3一起使用。我有一个包含一组列的数据框架,但我只想更改其中一列中所有值的数据类型,而不去管其他列。我能找到的唯一方法是编辑列,删除原始列,然后将编辑后的列合并回来。我希望编辑该列而不必删除和合并,使数据帧的其余部分不受影响。这可能吗 下面是我的解决方案: import numpy as np import pandas as pd from pandas import Series,DataFrame def make_float(var): var = flo

我将熊猫与Python 3一起使用。我有一个包含一组列的数据框架,但我只想更改其中一列中所有值的数据类型,而不去管其他列。我能找到的唯一方法是编辑列,删除原始列,然后将编辑后的列合并回来。我希望编辑该列而不必删除和合并,使数据帧的其余部分不受影响。这可能吗

下面是我的解决方案:

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

def make_float(var):
    var = float(var)
    return var

#create a new dataframe with the value types I want
df2 = df1['column'].apply(make_float)
#remove the original column
df3 = df1.drop('column',1)
#merge the dataframes
df1 = pd.concat([df3,df2],axis=1)
直接将函数应用于数据帧也不起作用。例如:

df1['column'].apply(make_float)
print(type(df1.iloc[1]['column']))
收益率:

<class 'str'>

如果某些行的转换失败,它将引发错误

Apply在原地不起作用,而是返回在此行中放弃的序列:

df1['column'].apply(make_float)

除了Yakym的解决方案,您还可以这样做-

df['column'] += 0.0

多亏了Yakym的帮助,我意识到这也会起作用:df1['column']=df1['column'].apply(make_float)
df['column'] += 0.0