簡體   English   中英

如何用每個數據點作為新列創建一個新數據框?

[英]How to create a new data frame with each data point as a new column?

我正在嘗試從網頁上抓取表格。 該網頁包含表中數據的鏈接。 基本上,我正在編寫一個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

在此處輸入圖片說明 有沒有簡單的方法可以做到這一點?

答案的草圖(對於python)將是:

  • 將數據讀入pandas.DataFrame
  • 使用df.unstack()您將獲得所需的表單

也許不是那么優雅的解決方案,但是可以工作:

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是您要轉換的數據幀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM