如何在Excel或Python中为正确的列分配正确的值

时间:2018-07-26 03:21:03

标签: python excel

我最近使用Python抓取了数据,并将数据导出到CSV文件。 但是后来我发现了一个严重错误。 由于我是Python的初学者,因此我尝试查找过去的参考资料或一些材料供我自己解决,但无法解决。

让我直接解决我的问题。例如,我的CSV文件如下所示:

        amenity_TV  amenity_Wifi  amenity_kitchen  amenity_iron  ...  amenity_phone
hotel_A    TV            Wifi           kitchen        iron      ...     phone
hotel_B    TV            kitchen        iron           null      ...     null
hotel_C    TV            Wifi           iron           null      ...     null
hotel_D    Wifi          null           phone          null      ...     null

其中单位是酒店,设施是圆柱。我做错了的是,我应该在正确的列中分配正确的值。例如,它的外观应如下所示:

        amenity_TV  amenity_Wifi  amenity_kitchen  amenity_iron  ...  amenity_phone
hotel_A    TV            Wifi           kitchen        iron      ...     phone
hotel_B    TV            null           kitchen        iron      ...     null
hotel_C    TV            Wifi           null           iron      ...     null
hotel_D    null          Wifi           null           null      ...     phone

另一个问题是,我可以在Excel中处理此问题还是使用Python进行处理更有效?

1 个答案:

答案 0 :(得分:1)

这是将值移动到Excel中右列的一种方法:

  1. 创建一组新的列“ amenity_TV”,“ amenity_Wifi”等。
  2. 使用SUBSTITUTE用空白字符串替换每个列标题中的“ amenity_”,即只需返回“ TV”,“ Wifi”等。
  3. 根据结果文本在每一行中检查MATCH
  4. 如果存在MATCH-即MATCH没有返回错误-请返回该文本,否则返回Null

原始数据

http://glaros.dtc.umn.edu/gkhome/node/877


更新数据

将此公式放在I2中并上下拖动:

=IF(NOT(ISERROR(MATCH(SUBSTITUTE(K$1,"amenity_",""),$B2:$F2,0))),SUBSTITUTE(K$1,"amenity_",""),"Null")

enter image description here