2014-10-28 71 views
0

執行操作我有一個包含了進口,因爲我想轉換成浮動和做師串轉換數據框架柱漂浮在熊貓

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

以下的數據幀。以下做得很好。

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 

回答

2

下將工作,定義一個函數來執行鑄造浮動和返回這一點,其結果應該分配給輸出新柱:

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 
0

,當且僅當你沒有輸入/從不受信任的源數據,這裏有一個捷徑:

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 

但是認真......要小心eval。 Good old Bobby Tables