2013-12-08 26 views
9

我想要回合pandas.DataFrame圓形pandas.DataFrame的正確方法?

這裏是我到目前爲止已經試過:

import pandas as pd 
data = pd.DataFrame([1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]) 
print(round(data)) 

但是當我運行這段代碼,我得到以下錯誤:

Traceback (most recent call last): 
    File "C:\Users\*****\Documents\*****\******\****.py", line 3, in <module> 
    print(round(data)) 
TypeError: type DataFrame doesn't define __round__ method 

什麼是圓pandas.DataFrame的正確方法?

+0

Dup of http://stackoverflow.com/q/19100540/564538 –

回答

13

第一,你可能想改變你的數據幀的定義是這樣的:

data = pd.DataFrame([[1.4,2.5,3.8,4.4,5.6],[6.2,7.6,8.8,9.1,0]]).T 

導致此:

 0 1 
0 1.4 6.2 
1 2.5 7.6 
2 3.8 8.8 
3 4.4 9.1 
4 5.6 0.0 

或:

data = pd.DataFrame({'A':[1.4,2.5,3.8,4.4,5.6],'B':[6.2,7.6,8.8,9.1,0]}) 

所以你會得到兩列,否則另一個列表被選爲索引;然後:

data.apply(pd.Series.round) 

import numpy as np 
data.apply(np.round) 
+0

這輪只有第一列 –

+2

你的方式是製作數據幀,另一列是索引,pandas將函數應用於列而不是索引 –

+0

怎麼樣系列,我怎麼能圓他們? –