Перенос ваших данных с помощью Python, SQL или электронных таблиц

В наши дни сбор данных кажется проще, чем когда-либо, но это не значит, что вы всегда сможете собирать их в форме, обеспечивающей необходимую информацию. Иногда вам нужно будет манипулировать своими данными таким образом, чтобы изменить их организацию, чтобы вы могли увидеть их в новом ракурсе. Смещение данных часто является простым способом реорганизации столбцов и строк данных, преобразования их в группы, статистические данные или сводки. Эта статья покажет вам три простых способа сводить данные с помощью таких инструментов, как таблицы Google, Microsoft SQL Server Management Studios и библиотека Python Pandas.

Если вы хотите продолжить, вы можете скачать мои данные о времени и продажах с kaggle здесь:



Поворот в Python с использованием Pandas

Pandas - мощная и популярная библиотека анализа данных для Python. Это позволяет вам создавать фреймы данных для просмотра и управления вашими данными в структуре, подобной электронной таблице или таблице базы данных. Вы можете создавать сводные таблицы с помощью Pandas в пару строк кода! Я покажу вам, как вы можете сводить столбцы или строки:

  1. Импортируйте свои зависимости и данные:
import pandas as pd
import numpy as np
#read your csv data to a Data Frame
data = pd.read_csv(r'C:\Users\Admin\Desktop\Edge\optionsTradeData.csv')
#check the data
data.head()

2. Используйте функцию Pandas.pivot_table, чтобы создать сводную таблицу в виде электронной таблицы:

pd.pivot_table(data, index = ['Sector'], values = ['Spent'], aggfunc = np.sum)

ИЛИ вы можете установить секторы в столбцы вместо того, чтобы использовать их в качестве индекса:

pd.pivot_table(data, columns = ['Sector'], values = ['Spent'], aggfunc = np.sum)

Разверните свои таблицы

Глядя на наши данные, допустим, мы хотим просуммировать потраченную сумму по секторам. Сводные таблицы упрощают расчет. Microsoft Excel и Google Sheets имеют встроенную функцию сводки, позволяющую легко преобразовывать ваши электронные таблицы. Чтобы создать сводную таблицу в таблицах Google, выполните следующие действия:

1. Data > Pivot table.
2. Set the Data range.
3. Select an insert option data. I recommend New sheet.
4. Click Create.

Вы увидите пустую таблицу и редактор сводной таблицы, который позволяет вам настраивать строки, столбцы, значения и фильтры. Если вы совсем не знакомы со сводными таблицами, Google Таблицы упрощают начало работы, предлагая вам предлагаемые сводные таблицы:

Чтобы получить общую сумму, потраченную по секторам, нам нужно установить наши строки и значения:

1. Click Add Rows.
2. Select sector.
3. Click Add Values.
4. Select Spent.

Вы успешно развернули свои данные, чтобы они выглядели так:

Сводка в SQL

SQL - это мощный язык запросов, который позволяет извлекать данные в реляционных базах данных и манипулировать ими. Это довольно простой язык для изучения, и я настоятельно рекомендую изучить основы, если вы с ним не знакомы. Я использую Microsoft SQL Server и SQL Server Management Studios на работе и дома, так что это вариант, который я буду использовать в своем примере, но есть несколько различных сред баз данных / SQL, в которых вы можете играть: MySQL, PostgreSQL, SQLite и Oracle Database - это лишь некоторые из них.

Microsoft SQL Server позволяет использовать реляционный оператор PIVOT для вращения и агрегирования данных, преобразовывая их в сводную таблицу. Это пример синтаксиса Pivot из документации Microsoft:

SELECT <non-pivoted column>,  
    [first pivoted column] AS <column name>,  
    [second pivoted column] AS <column name>,  
    ...  
    [last pivoted column] AS <column name>  
FROM  
    (<SELECT query that produces the data>)   
    AS <alias for the source query>  
PIVOT  
(  
    <aggregation function>(<column being aggregated>)  
FOR   
[<column that contains the values that will become column headers>]   
    IN ( [first pivoted column], [second pivoted column],  
    ... [last pivoted column])  
) AS <alias for the pivot table>  
<optional ORDER BY clause>;

Начните с оператора SELECT, который выводит данные, которые вы хотите развернуть:

(select sector, spent
from v_FlowTotal)

Из этих данных выберите столбцы, которые вы хотите повернуть. В нашем примере мы хотим развернуть сектора:

select [Non-Cyclical Consumer Goods]
,ETF
,Healthcare
,Utilities
,MISC
,[Cyclical Consumer Goods]
,Telecommunication
,WEED
,Financials
,Energy
,[Basic Materials]
,Industrials
,REIT
,Technology
FROM (
  select sector, spent FROM v_FlowTotal ft
) as SourceTable

Затем примените оператор PIVOT вместе с функцией агрегирования:

select [Non-Cyclical Consumer Goods]
,ETF
,Healthcare
,Utilities
,MISC
,[Cyclical Consumer Goods]
,Telecommunication
,WEED
,Financials
,Energy
,[Basic Materials]
,Industrials
,REIT
,Technology
FROM (
  select sector, spent FROM v_FlowTotal ft
 ) as SourceTable
PIVOT (
  sum(spent)
  for sector IN (
  [Non-Cyclical Consumer Goods]
  ,ETF
  ,Healthcare
  ,Utilities
  ,MISC
  ,[Cyclical Consumer Goods]
  ,Telecommunication
  ,WEED
  ,Financials
  ,Energy
  ,[Basic Materials]
  ,Industrials
  ,REIT
  ,Technology)
)As PivotTable

Результат будет выглядеть так:

Заключительные замечания:

Хотя эта статья поможет вам начать работу со сводными таблицами, лучший способ изучить все, что они могут предложить, - это повозиться и поэкспериментировать с их функциональностью! Сводные таблицы легко создавать, и они могут позволить вам получить представление о ваших данных, изменив способ их просмотра.

Благодарю вас!

- Эрик Клеппен