我有一个字符串是 -
str="Key=xxxx, age=11, key=yyyy , age=22,Key=zzzz, age=01, key=qqqq, age=21,Key=wwwww, age=91, key=pppp, age=22"
我想将此字符串转换为 Python DataFrame,并以 KEY 和 AGE 作为列名。 给定的密钥和年龄成对出现。 我如何才能实现这种转换?
答案 0 :(得分:1)
你可以试试regex
import re
import pandas as pd
s = "Key=xxxx, age=11, key=yyyy , age=22,Key=zzzz, age=01, key=qqqq, age=21,Key=wwwww, age=91, key=pppp, age=22"
df = pd.DataFrame(zip(re.findall(r'Key=([^,\s]+)', s, re.IGNORECASE), re.findall(r'age=([^,\s]+)', s, re.IGNORECASE)),
columns=['key', 'age'])
df
key age
0 xxxx 11
1 yyyy 22
2 zzzz 01
3 qqqq 21
4 wwwww 91
5 pppp 22
答案 1 :(得分:1)
使用正则表达式查找所有 key/age
对:"key=(\w+)\s*,\s*age=(\w+)"
然后使用它们构建数据框
import re
import pandas as pd
content = "Key=xxxx, age=11, key=yyyy , age=22,Key=zzzz, age=01, key=qqqq, age=21,Key=wwwww, age=91, key=pppp, age=22"
pat = re.compile(r"key=(\w+)\s*,\s*age=(\w+)", flags=re.IGNORECASE)
values = pat.findall(content)
df = pd.DataFrame(values, columns=['key', 'age'])
print(df)
# - - - - -
key age
0 xxxx 11
1 yyyy 22
2 zzzz 01
3 qqqq 21
4 wwwww 91
5 pppp 22