2017-10-21 68 views
0

Supposons que j'ai un grand données dans un fichier csv:Comment faire pour mettre à jour la valeur dans les cellules de colonne basées sur d'autres cellules de colonne dans le même fichier csv bys en utilisant python?

frame.number frame.len frame.cap_len frame.Type 
    1    100   100   ICMP 
    2    64   64   UDP 
    3    100   100   ICMP 
    4    87   64   ICMP 

Je souhaite modifier le type de trame en fonction de sa longueur. Le premier problème est que je ne sais pas comment extraire le rang de la colonne, puis modifiez le cadre typelike ceci:

if frame.len==100 then it puts frame.type=ICMP_tt else if frame.len==87 then it puts frame.type=ICMP_nn 

je voudrais qu'il ressemble à ceci:

frame.number frame.len frame.cap_len frame.Type 
    1    100   100   ICMP_tt 
    2    64   64   UDP 
    3    100   100   ICMP_tt 
    4    87   64   ICMP_nn 

J'essaie en utilisant ce code mais il ne fait aucune modification.

import pandas 

df = pandas.read_csv('Test.csv') 
if df['frame.len'] == 100: 
    df['frame.type'].replace("ICMP_tt") 

Je serais très reconnaissant si vous pouviez m'aider s'il vous plaît.

Répondre

0

question similaires: How to conditionally update DataFrame column in Pandas

import pandas 
df = pandas.read_csv('Test.csv') 
df.loc[df['frame.len'] == 100, 'frame.Type'] = "ICMP_tt" 
df.loc[df['frame.len'] == 87, 'frame.Type'] = "ICMP_nn" 
df 

Résultat: enter image description here

devrait faire l'affaire. Le premier élément donné à df.loc[] est un tableau plein de valeurs True/False indiquant les lignes à mettre à jour (acceptera également un seul nombre comme index de ligne si je me souviens bien), et le second élément spécifie quelle colonne mettre à jour.

+0

Mais je n'ai aucune modification, c'est mon problème. – tierrytestu

+0

Cela vous dérange-t-il de m'envoyer un csv ou un cornichon? Pickle serait meilleur. Par envoyer je veux dire quelque chose comme le partage sur google drive ... – DragonBobZ

+0

c'est un gros fichier, j'essaie de tester avec ces ensembles de lignes. Pensez-vous que je dois enregistrer les résultats dans un nouveau fichier. – tierrytestu