2017-05-23 1 views
1

J'ai un dataframe avec environ 6 millions de lignes de données quotidiennes que je vais utiliser pour trouver comment certains marqueurs techniques incidence sur le rendement à long terme de leurs stocks respectifs. J'ai 2 approches, laquelle est recommandée? Créez 2 tables différentes, une de données brutes et une (une copie filtrée) contenant les marqueurs techniques, puis effectuez des recherches sur la table principale pour obtenir les performances suivantes. Python Plusieurs DataFrames pandas meilleures pratiques

  • Utiliser une grande table, contenant à la fois les marqueurs et les données de performance. Je ne suis pas sûr de ce qui est le plus coûteux en termes de calcul - calculer les marqueurs techniques pour toutes les lignes, même les inutiles, ou faire les recherches sur la table principale. Merci.

  • Répondre

    1

    Je pense que la voie la plus simple et la plus efficace serait d'avoir deux tables. La raison en est qu'avec la grande table 1, votre algorithme peut prendre O (n^2) puisque vous devez parcourir n fois le nombre de fois pour chaque élément de vos marqueurs et ensuite faire correspondre chaque élément n fois pour chaque performance.

    Si vous avez l'approche 2 déposerez votre complexité va à O (n * m) où n est le nombre de marqueurs techniques et m est le nombre d'enregistrements dans la performance. Dans ce cas d'utilisation j'imagine votre n à être basé sur Quelque soit l'vous voulez regarder et non l'ensemble ce qui signifie que votre n < m et donc vous pouvez simplement appliquer un court-circuit pour rendre l'algorithme beaucoup plus efficace.

    Alternativement, si vous étiez en mesure de créer une table de recherche principale pour capturer toutes les relations entre une performance et un marqueur technique, alors votre complexité est essentiellement une recherche de hachage ou O (1).