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
但说真的…小心评估