python - 在 Pandas Dataframe 中创建一个新列,从 URI 中提取域
问题描述
我为这个任务编写的代码工作得很好,但我知道它不是最 Python 的,所以我正在寻找一些建议。我有一个日志文件的数据框,其中一列有一个完整的 URL(主机名 + 路径等)。我写了这段代码来提取域:
# Generate domain column from uri
import uritools
domain = []
for value in df['uri']:
try:
nuri = [uritools.urisplit(value).authority if uritools.isuri(value) else value]
domain.append(nuri)
except:
domain.append(None)
df['domain'] = domain
正如我所说,这有效,但它很难看。输出很好,但是当我尝试将其修剪为单衬时,它不起作用。这是我尝试过的:
df['domain'] = [uritools.urisplit(df.uri).authority if uritools.isuri(df.uri) else df.uri]
我得到的错误是:
TypeError: expected string or bytes-like object
我怎样才能改进这个更合适?
解决方案
您需要为列表理解提供一个可迭代的
df['domain'] = [uritools.urisplit(uri).authority if uritools.isuri(uri) else uri for uri in df.uri]
通知df.uri
仅出现在行尾
推荐阅读
- svelte - 静态生成的站点,覆盖基于会话的信息
- google-apps-script - 谷歌表格脚本用单元格中的值替换空单元格
- angular - 角度2中的兄弟组件交互
- xtext - Xtext - 规则和验证问题
- c++ - 有没有办法在 C++ 中调用基类函数的所有子函数?
- office-js - 约 10 分钟后使用 Office.context.mailbox.item.to.getasync 出现内部格式错误
- c# - 使用触发器将 Func 或 Action 列表作为 AzureFunction
- mysql - 有效过滤,因为一个标准仅限于几个值
- kubernetes - 即使 Kubernetes 就绪探测失败,Pod 也能接收流量
- json - 使用 NiFi 在 HBase 中摄取 json 数据