Tranchage de Dataframe sur plusieurs conditions Python

HelloToEarth

J'ai un dataframe avec 3 colonnes:

df:

x       y      z
334     290    3350.0
334     291    3350.5
334     292    3360.1
335     292    3360.1
335     292    3360.1
335     290    3351.0
335     290    3352.5
335     291    3333.1
335     291    3333.1
.
.

Je voudrais vérifier et analyser les valeurs de chaque ligne de row = nà row = n+7dans une nouvelle trame de données en fonction de quelques conditions:

  1. df [n]! = df [n + 1]
  2. df [n]! = df [n + 3]
  3. df [n]! = df [n + 5]
  4. df ['x'] [n] <df ['x'] [n + 2]
  5. df ['x'] [n]> df ['x'] [n + 3]

Si tous ces éléments sont satisfaits, je souhaite écrire un nouveau dataframe:

df_new = pd.concat([df[n], df[n+1], df[n+2], df[n+3], 
df[n+4], df[n+5], df[n+6], df[n+7]])

Ainsi, l'algorithme + la sortie ressemblerait à:

for df[n] = 0:
1) [334     290    3350.0] != [334     291    3350.5]  True
2) [334     290    3350.0] != [335     292    3360.1]  True
3) [334     290    3350.0] != [335     290    3351.0]  True
4) 335 < 334  False
5) 335 > 335  False

Donc, dans ce cas, il sauterait la première itération jusqu'à ce que nous ayons parcouru toute la longueur de la trame de données et effectué des correspondances.

df_new(first iteration) = df_new.concat([....]) = empty row values

Existe-t-il un moyen simple de le faire avec rapidité Pandas?

Sandalaphon

A. Obtenez les quarts de travail appropriés:

    n1 = df.shift(-1)
    n2 = df.shift(-2)
    n3 = df.shift(-3)
    n5 = df.shift(-5)

Satisfaire les conditions 1, 2 et 3:

cond = (df != n1) & (df != n3) & (df != n5)

C. Satisfaire les conditions 4, 5:

 cond['holder'] = (df.x < n2.x) & (df.x < n3.x)

D. Obtenez une série booléenne (nous voulons n'importe quelle ligne avec tous les 'True'):

boolidx = cond.all(axis=1)

E. Utilisez pour obtenir le résultat:

df.loc[boolidx]

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

python, filtre dataframe basé sur plusieurs conditions

filtrage de dataframe sur plusieurs conditions

Tranchage conditionnel de dataframe

Créer une nouvelle colonne Python DataFrame basée sur les conditions de plusieurs autres colonnes

Filtrage de DataFrame sur plusieurs conditions dans Pandas

Filtrer les lignes de dataframe sur plusieurs conditions, obtenir ValueError

Fusion de dataframes pandas sur plusieurs conditions (python / pandas)

Comment filtrer le dataframe sur plusieurs conditions?

Tranchage de tableau Python Numpy

Tranchage dynamique de tableau Python

Pandas - colonne de manipulation basée sur plusieurs conditions sur dataframe

Python - tranchage sur le plan z

Fonction de tranchage sur la boucle <for>

manipulation de dataframe python basée sur des conditions

Appliquer deux conditions de filtre sur python pandas dataframe groupby

filtrage basé sur plusieurs conditions en Python

Créer un nouveau DataFrame basé sur les conditions de plusieurs DataFrames

Comment filtrer les lignes DataFrame par liste de conditions simultanément sur plusieurs colonnes

Méthode optimisée pour plusieurs conditions sur la valeur des colonnes de pandas dataframe

Créer une colonne basée sur plusieurs conditions de colonne à partir d'un autre dataframe

Filtrage du dataframe basé sur plusieurs conditions à l'aide de la logique booléenne

Un moyen plus rapide de filtrer les pandas DataFrame dans la boucle For sur plusieurs conditions

total de segmentation basé sur plusieurs conditions

correspondance de 2 dfs sur plusieurs conditions

Liste de filtrage sur plusieurs conditions

Tranchage de texte de soumission Python Reddit

Suppression de plusieurs colonnes de fichiers CSV en fonction de certaines conditions sur Python

Comment créer une colonne basée sur le classement basée sur plusieurs conditions de colonne dans r dataframe

COUNTIF en pandas python sur plusieurs colonnes avec plusieurs conditions

TOP liste

  1. 1

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  2. 2

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  3. 3

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Pourquoi Object.hashCode () ne suit pas la convention du code Java

  6. 6

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  9. 9

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  10. 10

    Comment changer la couleur de la police dans R?

  11. 11

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  12. 12

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  13. 13

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  14. 14

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  15. 15

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  16. 16

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  17. 17

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  18. 18

    Ajustement non linéaire avec R

  19. 19

    php ajouter et fusionner des données de deux tables

  20. 20

    Exporter la table de l'arborescence vers CSV avec mise en forme

  21. 21

    帶有 Spring Boot 和 Azure AD 的 KeyCloak

chaudétiquette

Archive