কোনও পান্ডাস ডেটা ফ্রেম থাকার সময়:
import pandas as pd
import numpy as np
df = pd.DataFrame({'today': [['a', 'b', 'c'], ['a', 'b'], ['b']],
'yesterday': [['a', 'b'], ['a'], ['a']]})
today yesterday
0 ['a', 'b', 'c'] ['a', 'b']
1 ['a', 'b'] ['a']
2 ['b'] ['a']
... etc
তবে প্রায় 100,000 এন্ট্রি সহ, আমি সারি অনুসারে দুটি কলামে সেই তালিকাগুলির সংযোজন এবং অপসারণগুলি সন্ধান করছি।
এটি এই প্রশ্নের সাথে তুলনীয়: পান্ডস: কীভাবে পান্ডাদের (লুপের জন্য নয়) একটি ডেটা ফ্রেমে সারি অনুসারে তালিকাগুলির তালিকাগুলি তুলনা করবেন? তবে আমি পার্থক্যগুলি দেখছি, এবং Pandas.apply
এমন অনেকগুলি এন্ট্রিগুলির জন্য পদ্ধতিটি এত দ্রুত নয় বলে মনে হচ্ছে। এই কোডটি আমি বর্তমানে ব্যবহার করছি। Pandas.apply
সঙ্গে numpy's setdiff1d
পদ্ধতি:
additions = df.apply(lambda row: np.setdiff1d(row.today, row.yesterday), axis=1)
removals = df.apply(lambda row: np.setdiff1d(row.yesterday, row.today), axis=1)
এটি দুর্দান্ত কাজ করে, তবে এটি 120 000 এন্ট্রিগুলির জন্য প্রায় এক মিনিট সময় নেয়। তাহলে এটি সম্পাদন করার আরও দ্রুত উপায় আছে?