我必须转换下面的pandas数据帧,如下所示。列X7有一些元素需要拆分并形成新行
X1 Y X7
117 AA "1256 (LM)
1257 (LM)
1258 (LM)"
118 LL 131 (NB)
132 (NB)
133 (NB)
到以下数据框
X1 Y X7
117 AA 1256(LM)
117 AA 1257(LM)
117 AA 1258(LM)
118 LL 131(NB)
118 LL 132(NB)
118 LL 133(NB)
答案 0 :(得分:0)
我相信你需要:
#set index to all columns for repeat
#split column X7 by separator
#reshape by stack
#convert MultiIndex to columns
df = (df.set_index(['X1','Y'])['X7']
.str.split('\n', expand=True)
.stack()
.reset_index(name='X7')
.drop('level_2', axis=1)
)
print (df)
X1 Y X7
0 117 AA 1256 (LM)
1 117 AA 1257 (LM)
2 117 AA 1258 (LM)
3 118 LL 131 (NB)
4 118 LL 132 (NB)
5 118 LL 133 (NB)