我有一个熊猫数据框,其数据如下所示
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'])
答案 0 :(得分:0)
图我可以使用以下方法提取数据:
df['id'].str.get(0)
答案 1 :(得分:0)
遍历数据框以访问每个字符串,然后使用:
newstring = oldstring[1:len(oldstring)-1]
替换数据框中的单元格。
答案 2 :(得分:0)
尝试遍历各列:
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_]+)\]'))