мне нужно найти равную ширину по данным временного ряда.
Пока что я мог бы сделать это, вручную выбрав каждый столбец и применив условие.Но мне нужен более быстрый способ сделать это.
Данные временных рядов:
Time ulaR trxA
0 0.6457325 0.4040438
50 0.4594477 0.4172161
100 0.4244469 0.3878299
150 0.391452 0.49735
200 0.3570379 0.4930038
250 0.3730624 0.4221448
300 0.3676819 0.3796647
350 0.3688949 0.4228213
400 0.4018654 0.439482
450 0.3934677 0.4039933
500 0.3571651 0.3264575
550 0.5451287 0.3471816
600 0.6520524 0.3710635
650 0.6776012 0.4173777
700 0.684412 0.3812378
750 0.7298819 0.3735065
800 0.739083 0.3195176
850 0.6394782 0.213515
900 0.6483277 0.3721211
950 0.7003584 0.3528451
1000 0.6926971 0.3867717
Мой код:
import numpy as np
import pandas as pd
import csv
import array as ar
infile="Ecoli-1_dream4_timeseries.tsv"
outfile="tempecoli.csv"
df=pd.read_csv(infile,delimiter="\t",dtype=float)
a1=np.array(df['ulaR'])
s=df.sort_values(['ulaR'])
s1=np.array(s['ulaR'])
gr=list()
for i in range(len(s1)):
for j in range(len(a1)):
if s1[i]==a1[j]:
if j<=7:
gr.append(0)
elif j>7 and j<=14:
gr.append(1)
else:
gr.append(2)
##########
a1=np.array(df['trxA'])
s=df.sort_values(['trxA'])
s1=np.array(s['trxA'])
gr1=list()
for i in range(len(s1)):
for j in range(len(a1)):
if s1[i]==a1[j]:
if j<=7:
gr1.append(0)
elif j>7 and j<=14:
gr1.append(1)
else:
gr1.append(2)
#############
group1=pd.Series(gr,name="ulaR")
group2=pd.Series(gr1,name="trxA")
df2=pd.concat([group1,group2],axis=1)
df2.to_csv("ecoli1.csv")
print("Completed")
Если вы запустите этот код, выполучит результат.Я не хочу никакого нового результата, все, что я хочу, это более эффективный по времени код, чтобы получить желаемый результат.Потому что написание имен каждого кода, а затем применение условий занимает много времени.Небольшая помощь будет оценена.Заранее спасибо.