python - 使用标记从列中解析多个子字符串并将它们放入新列中
问题描述
我创建了一个名为LogEntry的数据框列,它从我感兴趣的文本文件中提取所有日志条目(使用 str.contains)。
我完全坚持寻找从 LogEntry 列解析值的最佳方法(或任何方法)并将它们放入新列中,例如:position_nm、target_nm、position_error_nm、pump_dist 和 pump_startpos,以便输出数据帧看起来像这:
我尝试使用 re.search,但 position_nm 列仍然是空白的。
try:
df['position_nm'] = df.LogEntry.re.search('position_nm":(.+?),' df['LogEntry']).group(1)
except AttributeError:
df['position_nm'] = ''
任何帮助我继续前进将不胜感激。我是编码新手。谢谢!
解决方案
您可以为每个功能编写如下函数,然后将 lambda 函数应用于数据帧。
def position_nm(sample):
sdict = '{'+sample.split('{')[1]
sdict = json.loads(sdict)
return sdict['position_nm']
df['position_nm'] = df['LogEntry'].apply(lambda x : position_nm(x))
推荐阅读
- reactjs - setState 不会改变 React 中的状态
- spring - 如何在方法内部而不是在方法级别使用 AOP 注释
- python - 如何有条件地从另一个数据框中替换 Pandas 数据框列值
- python-3.x - 如何在 casefolding 中询问有关小写错误的问题?
- android - Android # DefaultDispatch(5068) SIGSEGV(SEGV_MAPERR)
- javascript - Discord SDK 向发送命令的服务器的所有通道发送消息
- azure - Facebook 刮板:清除 URL
- sql - 解析日期时出现 Bigquery 时区转换错误
- spring - Spring HATEOAS:请求参数在链接中显示为路径变量
- reactjs - A/B 测试在谷歌中添加元素优化渲染两次(React/Nextjs 应用程序)