J'essaie d'extraire une information spécifique d'une information à partir d'une donnée de journal d'événement, qui est format de fichier texte. Vous trouverez ci-dessous une exemple de données pour votre référence. L'idée est d'extraire des mesures X et Y à partir de ces données. Échantillon fourni ci-dessous. sortie attendu p>
4 Réponses :
Vous ne savez pas quelle est la structure de données ici, mais ce code les extraire de cette chaîne spécifique. Je suis sûr que si d'autres cas de cela sont un peu similaires, cela devrait également fonctionner. Sorties: P> [-0.1279636, -0.1279636, -0.1279636, -0.1279636, -0.1279636, -0.1279636] #x_vals
[0.0819952, 0.04919712, 0.01639904, -0.01639904, -0.04919712, -0.0819952] #y_vals
Probablement une perte de temps pour tenter de répondre à une question comme celle-ci. Une fois que vous avez gagné plus de représentant, vous pouvez voter pour étranger.
Juste pour être clair, cette réponse ne concerne que le texte affiché dans la question. OP devra considérer avec précaution sur la façon de généraliser la regex en fonction du type de variations qu'il / elle s'attend à exécuter cette regex sur.
text = """start of text words on new line more words on new line"""
Merci pour la solution, ce travail sur une ligne de texte, qui correspond aux échantillons de données que j'ai fournis. Maintenant, je veux appliquer la même logique sur l'ensemble du fichier texte, que je lis la ligne de ligne par ligne à un tableau vide. J'apprécie si vous avez des suggestions sur la façon d'y aller.
S'il s'agit d'une méthode de code durs pour trouver juste X 'et Y's peuvent être facilement réalisés comme suit:
df = pd.DataFrame()
df['x'] = re.findall('x\s+([+-]?[0-9]*[.]?[0-9]+)', text)
df['y'] = re.findall('y\s+([+-]?[0-9]*[.]?[0-9]+)', text)
df = pd.DataFrame(columns=['x','y'], dtype=float)
for text in sample:
a = re.findall('x\s+(-?\d\.\d+)\s+y\s+(-?\d\.\d+)',text)
df = df.append(pd.DataFrame(a, columns=['x','y'], dtype=float))
Merci pour la solution. Je lis la ligne de fichier texte par ligne dans un exemple de fichier tableau = [], je voudrais maintenant exécuter la même logique sur cet ensemble complet. Je reçois une erreur, avez-vous une suggestion de le faire fonctionner?
Je passe le même code sur le tableau d'échantillons. Pour x, y dans re.findall ('x \ s + (-? \ d \. \ d +) \ s + y \ s + (--? \ d \. \ d +)', échantillon): impression (x, y) TypeError: Chaîne attendue ou objet de type octet
Importer Re pour texte dans l'échantillon: pour x, y dans re.findall ('x \ s + (-? \ d \. \ d +) \ s + y \ s + (--? \ d \. \ d +)', texte) : Imprimer (x, y) --------------- Est-ce quelque chose comme ça?
Laissez-nous Continuer cette discussion en chat .
L'exemple fourni n'est qu'une ligne d'un texte dans un fichier texte. Je dois passer plusieurs milliers de lignes et extraire des valeurs X et Y dans le même fichier texte.