[英]Python list to pandas dataframe
我有一个遵循这种格式的列表:
a=['date name','10150425010245 name1','10150425020245 name2']
我想把它转换成Pandas df:
newlist=[]
for item in a:
newlist.append(item.split(' '))
现在,将其转换为df:
pd.DataFrame(newlist)
结果
0 1
0 date name
1 10150425010245 name1
2 10150425020245 name2
我希望将'date'和'name'作为标题,但我无法做到这一点。 有没有更有效的方法将字符串列表自动转换为数据帧而不是这个?
这是一种方法。
使用列表推导而不是循环。
In [160]: data = [x.split('') for x in a]
In [161]: data
Out[161]: [['date', 'name'], ['10150425010245', 'name1'], ['10150425020245', 'name2']]
然后使用data[1:]
作为值,使用data[0]
作为列名。
In [162]: pd.DataFrame(data[1:], columns=data[0])
Out[162]:
date name
0 10150425010245 name1
1 10150425020245 name2
你是在正确的轨道上。 稍作修改,您的代码就可以正常工作。
import pandas as pd
a=['date name','10150425010245 name1','10150425020245 name2']
newlist=[]
for item in a:
newlist.append(item.split(' '))
newlist2=pd.DataFrame(newlist,columns=["date","name"])[1:]
newlist2
date name
10150425010245 name1
10150425020245 name2
试图总结已经在一行中给出的答案:
a=['date name','10150425010245 name1','10150425020245 name2']
pd.DataFrame(
map(str.split, a)[1:],
columns=a[0].split(),
)
输出:
Out[8]:
date name
0 10150425010245 name1
1 10150425020245 name2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.