2016-03-08 20 views
0

我試圖從Excel表格中取出數據並將其放入單行的csv中。我使用pandas將從excel導入的數據轉換爲數據框,但現在,我需要將這些數據寫入單行的csv中。這是可能的,如果是這樣的話,如果我正在使用50行3列表並將其平鋪到1行150列csv表中,那麼語法通常會是什麼樣子?到目前爲止我的代碼低於:從Excel壓縮表格轉換爲Csv與熊貓

import pandas as pd 
df = pd.read_excel('filelocation.xlsx', 
    sheetname=['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data'], 
    skiprows=8, parse_cols="B:D", keep_default_na='FALSE', na_values=['NULL'], header=3) 
DataFrame.to_csv("outputFile.csv") 

還有一個問題,我會幫助我瞭解如何把這個數據是,「有什麼辦法從一個特定的行和列選擇一塊數據」?

+0

當您將具有多個列的表拼合成單個表時,標題會失去所有含義 - 這是預期效果嗎? – mprat

+0

我正在手動添加新的標題,所以對我來說沒問題。 – pHorseSpec

回答

1

你可以簡單的設置line_terminator不了了之,像這樣:

df.to_csv('ouputfile.csv', line_terminator=',', index=False, header=False) 

或者,您可以將您的數據幀轉換成numpy的陣列,並使用重塑功能:

import numpy as np 
import pandas as pd 
arr = df.values.reshape(1,-1) 

然後,您可以使用numpy.savetxt()另存爲CSV。

+0

這是唯一平整表格的方法嗎?有沒有辦法從特定的行和列中選擇一段數據? – pHorseSpec

+1

可能有,但它會打敗DataFrames的目的(DataFrame是一個包含列和行的結構化表)。在這種情況下,最好轉向numpy,我會將其添加到我的答案中。 – Bastiaan

+0

難道你不想將line_terminator設置爲',',以便一行中的最後一個字段和下一行中的第一個字段被正確地分開嗎? –

0

嘗試這樣做:

df.to_csv("outputFile.csv", line_terminator=',')