2017-10-21 10 views
0

のは、私はcsvファイルでビッグデータを持っていると仮定してみましょう:私はその長さに基づいて、フレームの種類を変更したいpythonを使用して同じcsvファイルbysで他の列セルに基づいて列セルの値を更新する方法はありますか?

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 

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

が、私はそれがこのようになっていることを希望:

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 

を 最初の問題は、私は、このtypelikeフレームを変更、列のランクを抽出する方法がわからないということです私はこのコードを使って試してみましたが、変更はしていません。

import pandas 

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

私がお手伝いできれば幸いです。

答えて

0

同様の質問: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 

結果: enter image description here

はトリックを行う必要があります。 df.loc[]に与えられた最初の項目は、どの行を更新するかを示すTrue/False値の配列です(正しくリコールすると行インデックスとして単一の数値を受け入れます)。そして、2番目の項目は更新する列を指定します。

+0

しかし私は何の変更もありません。それは私の問題です。 – tierrytestu

+0

CSVかピクルスを私に送ってもらえますか?ピックルは良いでしょう。送信すると、私はGoogleドライブで共有するようなものを意味する... – DragonBobZ

+0

それは大きなファイルです、私はそれらの行のセットでテストしようとします。結果を新しいファイルに保存する必要があると思いますか? – tierrytestu

関連する問題