如何使用python更新基于同一csv文件中其他列单元格的列单元格中的值?

时间:2017-10-21 12:21:50

标签: python csv

假设我在csv文件中有大数据:

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

我尝试使用此代码,但它没有做任何修改。

import pandas

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

如果你能帮助我,我将非常感激。

1 个答案:

答案 0 :(得分: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值的数组,告诉它要更新哪些行(如果我没记错的话,也会接受单个数字作为行索引),第二个项指定要更新的列。