将逗号分隔的字符串转换为数据帧

2024-09-27 09:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子,它是-

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作为列名。 给定的密钥和年龄是成对的。 我如何实现这种转换


Tags: key字符串dataframeagestrxxxx绳子yyyy
2条回答

使用一个正则表达式来查找所有的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

你可以试试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

相关问题 更多 >

    热门问题