基于分隔符重塑字符串列表的Python

基于分隔符重塑字符串列表的Python,python,list,pandas,Python,List,Pandas,我有从Rest API调用返回的管道分隔数据: data = ['Bob|37', 'Eric|40'] 我从第一行中提取了标题信息,并将其拆分为一个列表: column_list = ['Name','Age'] 我试图将其读入熊猫数据框: pd.DataFrame(data,columns=column_list) 不出所料,它抱怨数据的形状不正确 ValueError:传递值的形状为(1,2),索引暗示为(2,2) 拆分数据列表中的字符串以将其加载到数据帧中的最佳方法是什么?尝试以下

我有从Rest API调用返回的管道分隔数据:

data = ['Bob|37', 'Eric|40']
我从第一行中提取了标题信息,并将其拆分为一个列表:

column_list = ['Name','Age']
我试图将其读入熊猫数据框:

pd.DataFrame(data,columns=column_list)
不出所料,它抱怨数据的形状不正确

ValueError:传递值的形状为(1,2),索引暗示为(2,2)

拆分数据列表中的字符串以将其加载到数据帧中的最佳方法是什么?

尝试以下方法:

data = ['Bob|37', 'Eric|40']

df = pd.Series(data).str.split('|', expand=True)
df.columns = ['Name', 'Age']
print df

   Name Age
0   Bob  37
1  Eric  40

下面是一个备选单线性解决方案(使用)函数:

In [20]: df = pd.Series(data).str.extract(r'(?P<Name>.*?)\|(?P<Age>.*)', expand=True)

In [21]: df
Out[21]:
   Name Age
0   Bob  37
1  Eric  40
[20]中的
:df=pd.Series(data).str.extract(r'(?P.*)\ |(?P.*),expand=True)
In[21]:df
出[21]:
姓名年龄
0鲍勃37
1埃里克40

可能有一种更好的特定于panda的方法,但是
[row.split(“|”)用于数据中的row]
是我在纯pythonThanks@Hamms中执行此操作的方法。这也很有效。