J'ai un ensemble de données dont les colonnes ressembler à ceci:Qu'est-ce qui est le plus rapide: Saisie de données appropriée ou structure de données appropriée?
Consumer ID | Product ID | Time Period | Product Score
1 | 1 | 1 | 2
2 | 1 | 2 | 3
et ainsi de suite.
Dans le cadre d'un programme (écrit en C), j'ai besoin de traiter les scores de produits donnés par tous les consommateurs pour une combinaison de produit et de période donnée pour toutes les combinaisons possibles. Supposons qu'il y ait 3 produits et 2 périodes de temps. Ensuite, je dois traiter les scores de produits pour toutes les combinaisons possibles, comme indiqué ci-dessous:
Product ID | Time Period
1 | 1
1 | 2
2 | 1
2 | 2
3 | 1
3 | 2
je vais devoir traiter les données le long des lignes au-dessus de nombreuses fois (> 10k) et l'ensemble de données est assez grand (par exemple, 48k consommateurs, 100 produits, 24 périodes de temps, etc.). Donc, la vitesse est un problème.
J'ai trouvé deux façons de traiter les données et je me demande quelle est l'approche la plus rapide ou peut-être peu importe? (Questions de vitesse, mais pas au coût de l'entretien/lisibilité excessive):
Trier les données identifiant du produit et la période de temps et ensuite en boucle à travers les données pour extraire des données pour toutes les combinaisons possibles.
Conservez les identifiants de consommateurs de tous les consommateurs qui ont fourni des scores de produit pour une combinaison particulière d'ID de produit et de période et traitez les données en conséquence.
Des pensées? Un autre moyen d'accélérer le traitement? Merci
Est-ce que le downvoter se soucie de commenter? – danben
Désolé, je l'ai abordé dans ma réponse et non comme un commentaire. –
c'est une façon de faire mais j'espérais que quelqu'un puisse donner un aperçu! – vad