2012-09-14 11 views
0

我寫了很多涉及DataFrame的測試(基於鼻子)。這些測試應該是最終用戶可讀的。與純文本表格表示相比,DataFrame構造函數不是非常友好的 。哪個DataFrame表示可讀測試

如何使用像reStructured構造/斷言DataFrame的文本表示?

=========== =========== ========= ========= ======================== 
id1   id2   net  nnet  desc 
(int64)  (int64)  (float64) (float64) (object) 
----------- ----------- --------- --------- ------------------------ 
1001  1002    10.0  0.0 Closed part of queue 
1002       0.0  3.0 Opened part of queue 
=========== =========== ========= ========= ======================== 

的(D型)線是執行該列鍵入上斷言不會失敗(可以是可選的)是有用的。

在編寫此reST DataFrame構造/斷言特性之前,我需要社區反饋。 我也考慮使用ipython筆記本作爲測試用例。

當可讀性計數時,您首選的DataFrame表示是什麼?

+0

忘了提那安息表示還可以幫助文檔(斯芬克斯) – PhE

回答

1

從reST表構造是不可能的,但會很有趣。您可以使用read_csv讀取表格。又見read_clipboard和read_fwf(固定寬度)

In [22]: table = """\ 
    ....: id1   id2   net  nnet  desc 
    ....: 1001  1002    10.0  0.0 Closed part of queue 
    ....: 1002  NaN    0.0  3.0 Opened part of queue 
    ....: """ 

In [23]: df = pandas.read_csv(StringIO(table), sep='[\s]{2,}') 

In [24]: df 
Out[24]: 
    id1 id2 net nnet     desc 
0 1001 1002 10  0 Closed part of queue 
1 1002 NaN 0  3 Opened part of queue 
+0

感謝您的正則表達式分隔符! 轉換爲np.NaN的'NaN'值也是個好消息。 但是我必須找到dtypes的解決方案,因爲列id1/id2是int64/float64並且使斷言失敗。 – PhE

+0

在int64列內不可能有NaN。 –