2017-05-24 32 views
1

我有了一個行結束我的時間字段類似下面的數據集:行終止,而不是空白大熊貓read_csv

文本文件:

num1 Name Num dan pan fran time 
---- ------ ---- ---- ---- ----- ---------------------------- 
52345 john 12 True True False <LF> 
43214 Matt 56 False False True 2008-12-12 01:01:47 UTC+0000<LF> 
12345 Adam 13 True True False <LF> 
54321 Sam  23 False True True <LF> 

目前代碼:

我目前正試圖將其讀入如下的pandas.DataFrame

pd.read_csv(file.txt, delim_white_space=True, skiprows=range(1,2)).fillna("NONE) 

當前結果:

我越來越有我的數據轉移,因爲我不能夠識別我的時間字段中的空白值類似下面的輸出:

num1 Name Num dan pan fran time 
    52345 john 12 True True False <LF> 
43214 Matt 56 False False True 2008-12-12 01:01:47 UTC+0000 
    12345 Adam 13 True True False <LF> 
    54321 Sam  23 False True True <LF> 

問題:

如何預先解析我的數據,使時間字段包含空格或「無」,然後適當讀入熊貓或熊貓r認識到有一個缺失的價值?

預期輸出:

num1 Name Num dan pan fran time 
52345 john 12 True True False NONE 
43214 Matt 56 False False True 2008-12-12 01:01:47 UTC+0000 
12345 Adam 13 True True False NONE 
54321 Sam  23 False True True NONE 
+0

您的輸入數據是否存儲在文本文件中?你有沒有像'sed'這樣的工具? 'sed -i.bck's//NONE/g'datafile.txt'可以很好地做你想做的事情。 – Evert

+0

它是在一個txt文件中,不幸的是我被困在windows/python中進行處理。 – johnnyb

+1

啊,是的,我看到你的問題。雖然,Pandas如何能夠正確解析日期字段?那麼我假設,那些''是象徵性的,而不是文字文本。 – Evert

回答

1

我建議pandas.read_fwf:

代碼:

df = pd.read_fwf('file1', skiprows=range(1, 2)).fillna("NONE") 

結果:

num1 Name Num dan pan fran       time 
0 52345 john 12 True True False       NONE 
1 43214 Matt 56 False False True 2008-12-12 01:01:47 UTC+0000 
2 12345 Adam 13 True True False       NONE 
3 54321 Sam 23 False True True       NONE 
+0

這工作,將在一分鐘內添加一個檢查。謝謝。 – johnnyb