df4loop
v0.1.0
DF4Loopは、Pandas.DataFrameとループの両方の組み合わせを必要とする汎用プロセスをサポートしています。具体的には、DF4loopのミッションは、低設置コストで「処理をスピードアップ」し、「複雑なコードを直感的にする」ことです。
pip install df4loop次のデータフレームは、ユーザーがDF4Loopの使用を想定するのを支援するために定義されています。
import pandas as pd
sample_dict = {
"column_1" : [ 100 , 200 , 300 , 400 , 500 ],
"column_2" : [ "A" , "B" , "C" , "D" , "E" ],
"column_3" : [ "a" , "b" , "c" , "d" , "e" ],
}
df = pd . DataFrame . from_dict ( sample_dict )
df| column_1 | column_2 | column_3 | |
|---|---|---|---|
| 0 | 100 | a | a |
| 1 | 200 | b | b |
| 2 | 300 | c | c |
| 3 | 400 | d | d |
| 4 | 500 | e | e |
dfiteratorは、開発者が次のコードを書くのに役立ちます。これは、pandas.dataframe.iterrowsを使用して書かれたコードであり、rowごとに値を参照する目的です。
for index , row in df . iterrows ():
tmp = row [ "column_1" ]dfiteratorはこのプロセスを再現し、スピードアップします。実際、DataFrameとその行Pandas.Seriesはリストと辞書に変換されてスピードアップされます。ただし、使用法はほぼ同じです。
from df4loop import DFIterator
df_iterator = DFIterator ( df )
for index , row in df_iterator . iterrows ():
tmp = row [ "column_1" ]インデックスを出力する必要がない場合は、 return_indexes=Falseを設定します。
from df4loop import DFIterator
df_iterator = DFIterator ( df )
for row in df_iterator . iterrows ( return_indexes = False ):
tmp = row [ "column_1" ]DFGeneratorは、ループで設定された行でデータフレームの生成をサポートします。ループでデータフレームに行を追加するには、処理に時間がかかります。スピードアップの秘secretは、リストまたは辞書で行を整理し、それらをPandas.dataframeに一度に作成することです。 DFGeneratorは、直感的な実装のためにこのプロセスをサポートしています。
次のコードは、dictタイプを行として選択する例です。
from df4loop import DFGenerator
# It is not necessary to specify columns.
df_generator = DFGenerator ( columns = df . columns . values . tolist ())
for _ , row in df . iterrows ():
tmp_row = {
"column_1" : row [ "column_1" ],
"column_2" : row [ "column_2" ],
"column_3" : row [ "column_3" ],
}
df_generator . append ( tmp_row )
new_df = df_generator . generate_df ()次のコードは、リストタイプを行として選択する例です。列は、初期化中に指定する必要があります。
from df4loop import DFGenerator
df_generator = DFGenerator ( columns = df . columns . values . tolist ())
for _ , row in df . iterrows ():
tmp_row = [
row [ "column_1" ],
row [ "column_2" ],
row [ "column_3" ],
]
df_generator . append ( tmp_row )
new_df = df_generator . generate_df ()