コードは次のとおりです。入力データフレームは次のとおりです。
import pandas as pd
import numpy as np
df = pd.DataFrame([('bird', 'Falconiformes', 2),
('bird', 'Psittaciformes', 4),
('mammal', 'Carnivora', 8),
('mammal', 'Primates', np.nan),
('mammal', 'Carnivora', 12)],
index=['falcon', 'parrot', 'lion', 'monkey', 'leopard'],
columns=('class', 'order', 'count'))
unique_class= df['class'].unique().tolist()
temp_list = []
for i in range(len(unique_class)):
temp =df[df['class']==unique_class[i]].reset_index(drop=True)
pipe_values= temp['order'].values.tolist()
count_values=temp['count'].values.tolist()
Stri= "|".join(pipe_values)
for j in range(len(pipe_values)):
df1=temp[:1]
df1['order']= Stri
df1['count'+str(j)]=count_values[j]
temp_list.append(df1)
final = pd.concat(temp_list)
final
問題は、巨大なデータが来るときです-約100万-プロセスが遅いです.pandasに他に実行できるロジックまたは組み込み関数はありますか?また、vaexライブラリを使用してそれを行うにはどうすればよいですか?