erv*_*gsb 6 python regex etl classification data-warehouse
我正在用Python编写一个ETL脚本,用于获取CSV文件中的数据,验证和清理数据,以及根据某些规则对每一行进行分类或分类,最后将其加载到postgresql数据库中.
数据看起来像这样(简化):
ColA, ColB, Timestamp, Timestamp, Journaltext, AmountA, AmountB
每行都是金融交易.我想要做的是根据一些规则对交易进行分类或分类.规则基本上是与Journaltext列中的文本匹配的正则表达式.
所以我想做的是这样的:
transactions = []
for row in rows:
    t = Transaction(category=classify(row.journaltext))
    transactions.append(t)
我不确定如何有效地编写classify()函数.
这就是分类规则的工作原理:
好.那么如何在Python中表示这些类别和相应的规则呢?
我非常感谢你的意见.即使你无法提供完整的解决方案.任何暗示我朝着正确方向发展的事情都会很棒.谢谢.
没有任何额外的绒毛:
categories = [
  ('cat1', ['foo']),
  ('cat2', ['football']),
  ('cat3', ['abc', 'aba', 'bca'])
]
def classify(text):
  for category, matches in categories:
    if any(match in text for match in matches):
      return category
  return None
在 Python 中,您可以使用in运算符来测试字符串的子集。您可以添加一些内容,例如isinstance(match, str)检查您是否使用简单字符串或正则表达式对象。它变得多么先进取决于你。
| 归档时间: | 
 | 
| 查看次数: | 3245 次 | 
| 最近记录: |