Python 2.7 将数据帧列转换为浮点,并在中执行操作

Python 2.7 将数据帧列转换为浮点,并在中执行操作,python-2.7,pandas,Python 2.7,Pandas,我有一个数据帧,其中包含以下作为字符串导入的内容 df3 = pd.DataFrame(data = { 'Column1':['10/1','9/5','7/4','12/3','18/7','14/2']}) 我试着转换成float并进行除法。以下几点做得很好 for i, v in enumerate(df3.Column1): df3['Column2'] = float(v[:-2]) / float(v[-1]) pri

我有一个数据帧,其中包含以下作为字符串导入的内容

df3 = pd.DataFrame(data = {
                       'Column1':['10/1','9/5','7/4','12/3','18/7','14/2']})
我试着转换成float并进行除法。以下几点做得很好

for i, v in enumerate(df3.Column1):
    df3['Column2'] = float(v[:-2]) / float(v[-1])
    print df3.Column2
这就是我试图实现的输出

df3 = pd.DataFrame(data = {
                       'Column1':['10/1','9/5','7/4','12/3','18/7','14/2'],
                       'Column2':['10.0','1.8','1.75','4.0','2.57142857143','7.0']})
df3

下面的操作将起作用,定义一个函数来执行强制转换为float并返回它,其结果应分配给新列:

In [10]:

df3 = pd.DataFrame(data = {
                       'Column1':['10/1','9/5','7/4','12/3','18/7','14/2']})
def func(x):
    return float(x[:-2]) / float(x[-1])

df3['Column2'] = df3['Column1'].apply(func)
df3
Out[10]:
  Column1    Column2
0    10/1  10.000000
1     9/5   1.800000
2     7/4   1.750000
3    12/3   4.000000
4    18/7   2.571429
5    14/2   7.000000

如果且仅当您没有来自不受信任来源的输入/数据时,这里有一个快捷方式:

In [46]: df3
Out[46]:
  Column1
0    10/1
1     9/5
2     7/4
3    12/3
4    18/7
5    14/2

In [47]: df3.Column1.map(eval)
Out[47]:
0    10.000000
1     1.800000
2     1.750000
3     4.000000
4     2.571429
5     7.000000
Name: Column1, dtype: float64
但说真的…小心评估