我从列表中生成了一个pandas数据帧:
在:
lis = [['baby ferrets\ntype: mamal\n»age:2\n»food: Renal'],['dog\ntype: mamal\n»age: 3 months\n»food: dog food'], ['cat\ntype: mamal\n»age: 2\n»food: cat food'], ['bobcat (exotic pet)\ntype: mamal\n»age: 1\n»food: meat'], ['iguana\ntype: reptile\n»age: 2\n»food: crickets']]
df = pd.DataFrame(lis)
df
输出:
^{pr2}$如何将以前的数据帧转换为(*):
pet, type, age, food
0 baby ferrets, mammal, 2, Renal
1 dog, mammal, 3 months, dog food
2 cat, mammal, 2, cat food
3 bobcat (exotic pet), mammal, 1, meat
4 iguana, reptile, 2, crickets
当我创建熊猫数据帧时,我试图做到:
df = pd.DataFrame(lis, sep= '\n')
我还试图:
df['newcol'] = lis['pet'].str.extract('([A-Z]\w{0,})', expand=True)
df
但是,我没有匹配所有的元素。是否可以使用pandas获得(*)格式?。
这应该适用于在加载列之后对其进行解析。在
说明:
上面的} 的形式接收数据帧的每一行,然后使用这个系列中第一个也是唯一一个元素(} 中并返回。
parse_col
函数以熊猫^{r[0]
)中的字符串。然后用'\n'
字符分割字符串,这样每个数据字段都是列表的一个单独的元素,再通过':'
字符将标签与实际数据分开。最后,将数据重新组合到另一个^{.apply()
DataFrame方法只将上面的函数应用于帧的每一行。在也可以修改此函数,以便在加载到DataFrame之前解析列表。在
相关问题 更多 >
编程相关推荐