regex - 使用熊猫从单元格中删除方括号
问题描述
我有一个熊猫数据框,其数据如下
id, name, date
[101],[test_name],[2019-06-13T13:45:00.000Z]
[103],[test_name3],[2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00.000Z]
[104],[],[]
我正在尝试将其转换为没有方括号的如下格式
预期输出:
id, name, date
101,test_name,2019-06-13T13:45:00.000Z
103,test_name3,2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00.000Z
104,,
我尝试使用如下正则表达式,但它给了我一个错误TypeError: expected string or bytes-like object
re.search(r"\[([A-Za-z0-9_]+)\]", df['id'])
解决方案
尝试遍历列:
for col in df.columns:
df[col] = df[col].str[1:-1]
或者apply
,如果您的数据重复不是问题,请使用:
df = df.apply(lambda x: x.str[1:-1])
输出:
id name date
0 101 test_name 2019-06-13T13:45:00.000Z
1 103 test_name3 2019-06-14T13:45:00.000Z, 2019-06-14T17:45:00....
2 104
或者如果你想使用正则表达式,你需要str
访问器,并且extract
:
df.apply(lambda x: x.str.extract('\[([A-Za-z0-9_]+)\]'))
推荐阅读
- compilation - 使用 Emscripten 构建时如何包含库头?
- c# - 什么可以解释在这种情况下使用 const 的开销?
- angularjs - 使用伊斯坦布尔通过手动测试查找代码覆盖率
- flutter - 在颤振中安装 cloud_firestore 时出错
- firebase - 从firebase实时数据库安全规则中检查Firestore文档是否存在的方法?
- node.js - 为什么我的 io.on 不断被解雇?
- ios - 如何加载 AdMob 中介适配器
- java - 如何计算相同的 json 值并在 textview 中显示?
- flutter - Flutter:我怎样才能创建这个半出容器的圆形头像?
- db2 - 如何在 DB2 的查询中使用子字符串输出作为类似参数