【问题标题】:How to update value in column cells based on other column cells in the same csv file bys using python?如何使用python根据同一csv文件中的其他列单元格更新列单元格中的值?
【发布时间】:2017-10-22 04:31:38
【问题描述】:

假设我在 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")

如果你能帮助我,我将不胜感激。

【问题讨论】:

    标签: python csv


    【解决方案1】:

    类似问题: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
    

    结果:

    应该做的伎俩。给df.loc[] 的第一项是一个充满真/假值的数组,告诉它要更新哪些行(如果我没记错的话,也将接受单个数字作为行索引),第二项指定要更新的列。

    【讨论】:

    • 但是我没有任何修改,这是我的问题。
    • 你介意给我发一份 csv 或泡菜吗?泡菜会更好。通过发送我的意思是在谷歌驱动器上分享它......
    • 这是一个大文件,我尝试用这些行进行测试。您是否认为我需要将结果保存在新文件中。
    • 可以,不会直接影响csv文件;它只会改变 DataFrame 对象中的数据。要让它真正影响您的 csv,您必须使用 df.to_csv('output.csv', index=False) 之类的东西写出来。
    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多