这是我的数据集,我的起始行是Name开头。如何将品牌栏和名称,地址...行放在一起?我不能将其放在开始行上方,因为我需要将其提取。
2 3 4 5 6 7 ... Brand
A B nan nan nan nan ... nike
Nan B nan nan C nan ... nike
Nan B nan nan C nan ... nike
AA B nan nan C nan ... Adidas
Name Address Type Size Comment Grade ... Adidas
John ggg sports 8 Nil A .... Adidas
这是我想要的结果:
2 3 4 5 6 7 ...
A B nan nan nan nan ...
Nan B nan nan C nan ...
Nan B nan nan C nan ...
AA B nan nan C nan ...
Name Address Type Size Comment Grade ... Brand
John ggg sports 8 Nil A .... Nike
John ggg sports 9 Nil B .... Nike
Mary ggg sports 6 Nil A .... Adidas
答案 0 :(得分:1)
您可以使用
df['Brand'] = df['Brand'].shift(df['2'].str.contains('Name').idxmax()+1)
df.at[df['2'].str.contains('Name').idxmax(), 'Brand'] = 'Brand'
print(df)
输出
2 3 4 5 6 7 ... Brand
0 A B NaN NaN NaN NaN ... NaN
1 Nan B NaN NaN C NaN ... NaN
2 Nan B NaN NaN C NaN ... NaN
3 AA B NaN NaN C NaN ... NaN
4 Name Address Type Size Comment Grade ... Brand
5 John ggg sports 8 Nil A .... nike