Используйте read_csv
для DataFrame
и затем pivot
с cumcount
для счетчика для нового индекса:
import pandas as pd
temp=u"""Name,Kamath
Age,23
Sex,Male
Company,ACC
Vehicle,Car
Name,Ram
Age,32
Sex,Male
Company,CCA
Vehicle,Bike
Name,Reena
Age,26
Sex,Female
Company,BARC
Vehicle,Cycle"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.txt'
df = pd.read_csv(pd.compat.StringIO(temp), names=['a','b'])
print (df)
a b
0 Name Kamath
1 Age 23
2 Sex Male
3 Company ACC
4 Vehicle Car
5 Name Ram
6 Age 32
7 Sex Male
8 Company CCA
9 Vehicle Bike
10 Name Reena
11 Age 26
12 Sex Female
13 Company BARC
14 Vehicle Cycle
df = pd.pivot(index=df.groupby('a').cumcount(),
columns=df['a'],
values=df['b'])
print (df)
a Age Company Name Sex Vehicle
0 23 ACC Kamath Male Car
1 32 CCA Ram Male Bike
2 26 BARC Reena Female Cycle
Хранимые процедуры являются местом для помещения кода (SQL), который выполняется на базе данных, таким образом, я понимаю вопрос означать
"есть ли какой-либо другой способ упаковать код, который работает на базе данных?"
Существует несколько ответов:
Да. можно использовать динамический sql, но мне лично нравятся хранимые процедуры лучше.
1) При использовании SQL Server MS он генерирует план запросов, который должен позволить хранимой процедуре выполниться быстрее, чем простой динамический sql.
2) Это может быть легче более эффективное для исправления ошибки в хранимой процедуре, expecially если вызовы приложения что процедура в нескольких местах.
3) Я нахожу, что хорошо инкапсулировать логику базы данных в базе данных, а не во встроенном sql или файле конфигурации приложения.
4) Создание хранимой процедуры в базу данных позволит SQL-серверу делать некоторый синтаксис и проверки проверки во время проектирования.
Будьте в спящем режиме объектный/реляционный сервис персистентности.
Хранимая процедура является подпрограммой в системе реляционных баз данных.
Не то же самое.
Если Вы хотите, чтобы альтернатива Была в спящем режиме, можно проверить на iBatis для Spring
Можно сделать динамический SQL, столь безопасный и быстрый, как хранимые процедуры могут быть, просто требуется некоторая работа. Конечно, требуется некоторая работа для создания хранимых процедур безопасными и быстрыми также.
Хм, мне кажется, что очевидной альтернативой хранимым процедурам является написание кода приложения. Вместо того, чтобы, скажем, писать процедуру магазина для проводки дебета каждый раз при отправке кредита, вы можете написать код приложения, который записывает и то, и другое.
Возможно, я здесь слишком упрощаюсь или упускаю суть вопроса.
хранимая процедура является подпрограммой доступен для приложений, обращающихся к система реляционных баз данных. Хранится процедуры (иногда называемые процедурой, sproc, StoPro или SP) на самом деле хранящиеся в базе данных данные словарь.
Типичное использование хранимых процедур. включить проверку данных (интегрированный в базу данных) или контроль доступа механизмы. Кроме того, хранится процедуры используются для консолидации и централизовать логику, которая была изначально реализовано в приложениях. Большой или сложная обработка, которая может потребовать выполнение нескольких SQL операторы перемещаются в сохраненные процедуры, и все приложения вызывают только процедуры.
Хранимые процедуры похожи на определяемые пользователем функции (UDF). В главное отличие в том, что UDF могут быть используется как любое другое выражение в Операторы SQL, в то время как сохраненные процедуры должны быть вызваны с помощью Оператор CALL
.. из Википедии
Я думаю, вам нужно прочитать эту статью и переосмыслить свой вопрос. Hibernate не имеет ничего общего с сохраненными процессами.
Было бы лучше, если бы вы сказали, почему ищете альтернативы, а что насчет хранимых процедур вам не нравится?
Некоторые базы данных (например, PostgreSQL) также позволяют писать хранимые процедуры в разные языки. Так что, если вы действительно хотите, вы можете написать их на Python или Java или тому подобное, вместо SQL.