ウスマンサイード:
次のコードを記述することによって、私はデータフレームを作成します
data = [['A', 'B','D'], ['A','D'], ['F', 'G','C','B','A']]
df = pd.DataFrame(data)
df
私の目標は、以下のリストに含まれていないデータフレームから値を削除することです。
list_items = ['A','B','C']
私の予想出力は下の通りです
私は、ループ内の値を横断しようとした一つ一つをチェックしますが、聞かせてのは、データフレームサイズ(9108、1616)には非常に大きいと言うと、リストには必要性がチェックされることを130以上のアイテムを持っています。その場合、コードを実行するために時間がかかりすぎています。予想される出力を達成するための最も効率的な方法を提案してください。
fmarm:
私はそれをやってすることは考えていないpandas
列は、ここで問題にならないように良いアイデアです。それはあなたが本当にそれを必要とする場合は、最後にパンダのデータフレームに変換することができ、リストでそれを行うには簡単です。
# convert df to list of lists
data = df.values.tolist()
# filter each element of the list to contain only list_items values
data_filtered = [ [el for el in l if el in list_items] for l in data]
# convert back to dataframe
df_filtered = pd.DataFrame(data_filtered)
print(df_filtered)
# 0 1 2
#0 A B None
#1 A None None
#2 C B A