首页 > 解决方案 > 如何删除 Python 字符串列表的特定列?

问题描述

这些是我从字符串列表中提取特定字符串的 Python 代码。

def readHdFile(filename):
    with hdfs.open_input_file(filename) as inf:
        read_data = inf.read().decode('utf-8').splitlines()
     
        print("output #1 {}".format(read_data))
        
        return read_data


list_data = readHdFile('test.csv')
for data in list_data:
    print("output #2 {}".format(data))

代码正常工作,没有错误。

output #1 ['date,values,realtime_start,realtime_end,state,id,title,frequency_short,units_short,seasonal_adjustment_short', '2007-01-01,6.3,2021-02-16,2021-02-16,Alaska,LAUST020000000000003A,Unemployment Rate in Alaska,A,%,NSA', '2008-01-01,6.7,2021-02-16,2021-02-16,Alaska,LAUST020000000000003A,Unemployment Rate in Alaska,A,%,NSA']

output #2 date,values,realtime_start,realtime_end,state,id,title,frequency_short,units_short,seasonal_adjustment_short
output #2 2007-01-01,6.3,2021-02-16,2021-02-16,Alaska,LAUST020000000000003A,Unemployment Rate in Alaska,A,%,NSA
output #2 2008-01-01,6.7,2021-02-16,2021-02-16,Alaska,LAUST020000000000003A,Unemployment Rate in Alaska,A,%,NSA

但是我必须从对象realtime_start中删除一些特定的列。在输出 #1 中,列表字符串用“,”字符分隔。但我不知道如何删除字符串的特定列,并且.realtime_endread_dataread_datadatarealtime_startrealtime_end

标签: python

解决方案


我不是 100% 确定您使用的数据格式,但您可以在最后两行代码中尝试:

for line in list_data:
    outline = line.split(',')
    new_line = ','.join(outline[:2]) + ',' + ','.join(outline[4:])
    print("output #2 {}".format(new_line))

real_time_start 和 real_time_end 是 csv 的第 3 列和第 4 列,因此您可以在没有这些字段的情况下打印新行。

当然这是快速而肮脏的解决方案,使用 Pandas 可能对新数据集更干净、更健壮,


推荐阅读