开发者社区> 问答> 正文

循环浏览csv文件中以该列表中的元素开头的列中的关键字列表-Python

看来我无法正确地解决这个问题。我有一个关键字列表来循环浏览csv文件。所有这些关键字都位于第二列。

keywords_list = ['account number','venmo cashout','quickpay']

这些关键字只是银行对帐单中每笔交易的开始,我需要抓住每笔以这些关键字开头的交易。这是我到目前为止尝试过的代码:

input_file = '/Users/.../input_file.csv'
output_file = '/Users/.../output_file.csv'
final_output_list = []
with open(input_file,'r') as raw_data_opener:
    key_words_search = csv.reader(raw_data_opener, delimiter=',')
    for j, col in enumerate(key_words_search):
        for i in range(len(keywords_list[i]):
            if col[1].str.startswith(keywords_list[i]): <----something wrong here
                final_output_list.append(col)
with open(output_file, 'w', newline='') as outfile:
     writer=csv.writer(outfile)
     for row in final_output_list:
         writer.writerow(row)
print('Finished...')

问题是输出文件中没有写入任何行项目。我的猜测是上面的代码有问题。请为我指出正确的方向,我们将不胜感激。提前致谢。

*编辑:*没有值从vs代码控制台写入输出文件中。同样,vs代码返回AttributeError:'str'对象没有属性'str'

*编辑:*输入文件布局:

Col0    Col1                         Col2
Date    Description                  Amount
01/02   Venmo Cashout PPD ID:...     xxxx

所需的输出:对于以关键字列表开头的每个订单项

Date    Description      Amount
01/02   Venmo Cashout..  xxx

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 20:27:23 522 0
1 条回答
写回答
取消 提交回答
  • 通过删除.str将解决问题...

    if col[1].startswith(key_words_list[i]): 
    

    它将返回以关键字列表中的元素开头的订单项

    回答来源:stackoverflow

    2020-03-24 20:27:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载