我有一个以下格式的数据框:
Col
Honda [edit]
Accord (4 models)[1]
Civic (4 models)[2]
Pilot (3 models)[1]
Toyota [edit]
Prius (4 models)[1]
Highlander (3 models)[4]
Ford [edit]
Explorer (2 models)[1]
我想要以下格式的数据:
A B
Honda Accord
Honda Civic
Honda Pilot
Toyota Prius
Toyota Highlander
答案 0 :(得分:2)
为str.contains
的测试字符串npm
创建布尔掩码,然后使用第一个app.post('/getdata',function(req,res){
console.log(req.body);
request(req.body.url).pipe(res);
});
或[edit]
按空格分隔列,将不匹配的值替换为(
where
之前,然后将缺少的值填充到列[
中。函数insert
用于将新列移到第一位置。最后通过boolean indexing
在两列中删除相同的值,并通过NaN
创建默认索引:
A
另一种解决方案:
reset_index
答案 1 :(得分:1)
IIUC 1st首先使用str.contains
找到包含编辑内容的Col,然后使用ffill
(假设所有数据已排序),之后我们只需要使用str.split
清除您的数据>
df['A']=df.Col[df.Col.str.contains('edit')]
df.A=df.A.ffill()
df
Out[58]:
Col A
0 Honda [edit] Honda [edit]
1 Accord (4 models)[1] Honda [edit]
2 Civic (4 models)[2] Honda [edit]
3 Pilot (3 models)[1] Honda [edit]
4 Toyota [edit] Toyota [edit]
5 Prius (4 models)[1] Toyota [edit]
6 Highlander (3 models)[4] Toyota [edit]
7 Ford [edit] Ford [edit]
8 Explorer (2 models)[1] Ford [edit]
df.apply(lambda x : df.Col.str.split(r'[(|[]').str[0],1).query('Col!=A')
Out[59]:
Col A
1 Accord Honda
2 Civic Honda
3 Pilot Honda
5 Prius Toyota
6 Highlander Toyota
8 Explorer Ford