Python: извлеките конкретный рисунок строки из столбцов Pandas и хранение в новые столбцыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: извлеките конкретный рисунок строки из столбцов Pandas и хранение в новые столбцы

Сообщение Anonymous »

У меня есть DataFrame в нижеприведенном формате: < /p>




тикер < /th>
< /tr>
< /thead>

< tr>
aban10octfut < /td>
< /tr>

aban10sep700pa < /td>
< /tr>
aban10sep720pa < /td>
< /tr>

aban10sep740pa < /td>
< /tr>

aban10sep760pa < /td>
< /tr>
< /tbody>
< /table>
< /div>
Я пытаюсь извлечь инструмент_name, Год, месяц, Strike_price и Instrument_type из столбца тикера и хранить его в существующем DataFrame. Я могу извлечь значения, но я не смог сохранить значения в существующем DataFrame.
Приведенный ниже код используется для извлечения значений из DataFrame.
for index,row in all_files_tickers.iterrows():
ticker = row['ticker']
print(index)
print(ticker)
try:
#Grouped FUT tickers here# ABAN10OCTFUT AREVAT&D10SEPFUT MCDOWELL-N10NOVFUT TV-1810OCTFUT NFTYMCAP5011FEBFUT FTSE10012AUGFUT
instrument_name,year,month,instrument_type = re.findall(r'([A-Z]{2,10}|[A-Z]{1,6}&[A-Z]{1,6}|[A-Z]{1,6}-[A-Z]{1,6}|[A-Z]{1,6}-[0-9]{1,5}|[A-Z]{1,9}[0-9]{1,2}|[A-Z]{1,6}&[A-Z]{1,6}[0-9]{1,3}|[A-Z]{1,6}[0-9]{1,3})(09|10|11|12|13|14|15|16|17|18|19|20|21)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(FUT)',ticker)[0]
except:
try:
#Grouped other tickers here# ABAN10SEP700PA ABAN10SEP780CA AREVAT&D10SEP300CA DISHTV10SEP52.5CA MCDOWELL-N10SEP1550CA TV-1810SEP90CA
instrument_name,year,month,strike_price,instrument_type = re.findall(r'([A-Z]{2,10}|[A-Z]{1,6}&[A-Z]{1,6}|[A-Z]{1,6}-[A-Z]{1,6}|[A-Z]{1,6}-[0-9]{1,5}|[A-Z]{1,9}[0-9]{1,2}|[A-Z]{1,6}&[A-Z]{1,6}[0-9]{1,3}|[A-Z]{1,6}[0-9]{1,3})(09|10|11|12|13|14|15|16|17|18|19|20|21)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)([0-9]{1,5}|[0-9]{1,5}.[0-9]{1,3})(PA|CA)',ticker)[0]
except:
try:
#Grouped option tickers here# BANKNIFTY10OCT10500PE BANKNIFTY10OCT11000CE ISPATIND11JAN22.5CE NFTYMCAP5010DEC2600PE S&P50011SEP1100PE
instrument_name,year,month,strike_price,instrument_type = re.findall(r'([A-Z]{2,10}|[A-Z]{1,6}&[A-Z]{1,6}|[A-Z]{1,6}-[A-Z]{1,6}|[A-Z]{1,6}-[0-9]{1,5}|[A-Z]{1,9}[0-9]{1,2}|[A-Z]{1,6}&[A-Z]{1,6}[0-9]{1,3}|[A-Z]{1,6}[0-9]{1,3})(09|10|11|12|13|14|15|16|17|18|19|20|21)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)([0-9]{1,5}|[0-9]{1,5}.[0-9]{1,3})(PE|CE)',ticker)[0]
except:
try:
#ss
instrument_name = re.findall(r'([a-z]{1,3})',ticker)[0]
except:
try:
#S&P5001SEPFUT
instrument_name,year,month,instrument_type = re.findall(r'([A-Z]{1,6}&[A-Z]{1,6}[0-9]{1,3})(1)(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(FUT)',ticker)[0]
except:
try:
#COALINDIA14130265CE
instrument_name,year,month,strike_price,instrument_type = re.findall(r'([A-Z]{2,10})(09|10|11|12|13|14|15|16|17|18|19|20|21)([0-9]{1,3})([0-9]{1,5})(PE|CE)',ticker)[0]
except:
try:
#FTSE100FEBFUT
instrument_name,month,instrument_type = re.findall(r'([A-Z]{1,6}[0-9]{1,3})(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(FUT)',ticker)[0]
except:
#ADANIPOWER28FEB1927.5PE
instrument_name,date,month,strike_price,instrument_type = re.findall(r'([A-Z]{1,10})([0-9]{1,2})(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)([0-9]{1,5}.[0-9]{1,3})(CE|PE)',ticker)[0]
< /code>
Я попробовал другой метод для извлечения значений и сохранения в DataFram, но я не получил нужный вывод. < /p>
def get_instrument_params(ticker):
instrument_name= re.findall(r'([A-Z]{2,10}|[A-Z]{1,6}&[A-Z]{1,6}|[A-Z]{1,6}-[A-Z]{1,6}|[A-Z]{1,6}-[0-9]{1,5}|[A-Z]{1,9}[0-9]{1,2}|[A-Z]{1,6}&[A-Z]{1,6}[0-9]{1,3}|[A-Z]{1,6}[0-9]{1,3})',ticker)
year= re.findall(r'(09|10|11|12|13|14|15|16|17|18|19|20|21)',ticker)
month= re.findall(r'(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)',ticker)
strike_price = re.findall(r'([0-9]{1,5}|[0-9]{1,5}.[0-9]{1,3})',ticker)
instrument_type = re.findall(r'(CA|PA|PE|CE)',ticker)
return " ".join(instrument_name,year,month,strike_price,instrument_type)
all_files_tickers['instrument_name','year','month','strike_price','instrument_type']=all_files_tickers['ticker'].apply(lambda x: get_instrument_params(x))
print(all_files_tickers)
< /code>
мне нужен нужный вывод, как ниже: < /p>




тикера < /th>
инструмент /th>
месяц < /th>
Strike_price < /th>
инструмент_type < /th>
< /tr>
< /thead>


aban10octfut < /td>
aban < /td>
10
oct
-
fut

aban10sep700pa < /td>
aban < /td>
10 < /td>
sep < /td>
700 < /td>
pa < /td>
< /tr>

Aban10sep720pa < /td>
aban < /td>
10 < /td>
sep < /td>
720 < /td>
pa < /td>
< /tr>

aban10sep740pa < /td>
aban
10
sep
740
pa
< /tr>

aban10sep760pa < /td>
aban < /td>
10 < /td>
sep < /td>
760 < /td>
pa < /td>
< /tr>



спасибо

Подробнее здесь: https://stackoverflow.com/questions/718 ... oring-into
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»