看来我无法正确地解决这个问题。我有一个关键字列表来循环浏览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
通过删除.str
将解决问题...
if col[1].startswith(key_words_list[i]):
它将返回以关键字列表中的元素开头的订单项
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。