2016-04-15 46 views
1

我是Python和熊貓的小菜鳥,但是我想盡我所能學習,所以在這裏,如果我犯了錯誤,請原諒我。PANDAS:如何將pd.read_csv和7位整數分成4乘3整數?

我需要幫助。我的目標是在25414長列表中繪製包含多個繪圖數據的csv數據。爲了做到這一點,我需要從csv文件中識別哪個繪圖編號和哪些數據(繪圖數據)轉到繪圖編號(即標題)。之後,我將使用Matplotlib和Numpy將所有圖形共享與圖片中所示的相同軸。 Plot image sample

1.I具有從傳感器產生的CSV文件和格式是這樣的: -

  • 原始數據= 8790203
    • 8790 =劇情數(熊貓數據幀報頭)
    • 203 =數據用於繪圖(繪圖數據)

而csv中的數據跨度長達25414。 Click here to download csv raw data.....

目標列表結果:

[Plot Number] [Plot Data] 
8790    203 
8790    205 
8790    210 
8791    060 
8791    065 
8791    090 

我用大熊貓是因爲它是快速的原因。我已經試過這段代碼來分割數據,但需要永久完成(由於錯誤或由於低效切片,我不確定)。

for x in range(0,len(factor),+1): 
y = factor.iloc[x] 
PlotNum = y[:4] 
PlotData = y[5:] 

謝謝。

回答

2

使用read_fwf並通過柱寬度以PARAM widths,設置header=None並傳遞所需的列名的列表:

In [234]: 
df = pd.read_fwf(r'c:\data\trace_ff_ID(360).trc', widths=[4,3], header=None, names=['Plot Number', 'Plot Data']) 
df.head() 

Out[234]: 
    Plot Number Plot Data 
0   8790  203 
1   8790  204 
2   8790  205 
3   8790  206 
4   8790  207 
+0

嗨,謝謝。我看到了read_fwf,並且fwf只是另一種類型的文件擴展名。 nvr我會使用它。謝謝!將盡快嘗試。 – Syah

0

出於效率使用read_csv其被高度優化,然後使用算術 分割數和數據:

In [10]: df=pd.read_csv('trace_ff_ID(360).csv',header=None) 

In [11]: df2=pd.DataFrame({'Plot Number':df[0]//1000,'Plot Data':df[0]%1000}) 

整個過程需要100毫秒。

+0

感謝您的快速回復。看起來不錯!將盡快試用... – Syah