2017-09-24 93 views
-1

我想從網頁上刮表。該網頁包含表格中數據的鏈接。基本上,我正在寫一個for循環來從每個鏈接獲取表並與另一個表連接。爲此,我需要將每個數據點轉置爲一列。如何創建每個數據點作爲新列的新數據框?

df= 2004 | 2006 | 2007 | 2008 ------------------------ GrowthRate 5% | 7% |-5% | 5% Earnings 234 | 449 | -300 | 448 EPS 17.6 |11.8 | 16.8 | 500 P\E 14.08|12.04 |11.37 | 348

我希望把它作爲

df = GrowthRate_2004 GrowthRate_2006 GrowthRate_2007 GrowthRate_2008 Earnings_2004 Earnings_2006 Earnings_2007 Earnings_2008 EPS_2004 EPS_2006 EPS_2007 EPS_2008 P/E_2004 P/E_2006 P/E_2007 P/E_2008 5% 7% -5% 5% 234 449 -300 448 17.6 11.8 16.8 500 14.08 12.04 11.37 348

enter image description here 有沒有簡單的方法來做到這一點?

+0

你使用Python還是R?你的問題應該*不*使用兩個標籤。在提出問題之前,還請提供自己嘗試自行完成此操作的代碼(或暫時刪除該問題,直到您處於此位置)。是的...有兩種語言都可以輕鬆實現,您可以通過搜索輕鬆找到... –

+0

任何一種語言都適合我。 Python是首選。 @ Hack-R我試過在python中做'df.T'的轉置,但是我沒有想到如何轉置所有的數據點 –

+0

我知道你是新的,所以我試圖幫助你理解我們允許的各種問題。在您提出問題之前,您應該已經編寫了代碼。這不是一個代碼寫入服務。你應該知道你是否使用Python或R.你還需要研究現有的問題/答案,所以你可以找到如何轉置表的明顯答案... –

回答

1

答案(對於Python)的素描是:

  • 將數據讀入一個pandas.DataFrame
  • df.unstack()你得到的表格,您正在尋找
+0

謝謝。有效 –

1

也許並非如此優雅的解決方案,但作品:

df_ = pd.DataFrame(data = np.broadcast_to(df.columns.values.reshape(-1, 1).astype(str), df.shape), index = df.columns.values, columns = df.index.values) 
df_ = pd.get_dummies(df_) 
df_ = pd.DataFrame(data = df.values.flatten().reshape(1, -1), columns=df_.columns) 
df_ = pd.DataFrame(data = np.broadcast_to(df.index.values.reshape(-1, 1), df.shape), columns = df.columns) 

其中df是dataf你正在從中轉換。

相關問題