我有一个这样的示例数据框,列:ID
和Main
ID,Main
0,[30 115 266 38;662 99 1199 43] [511 133 25 47] [664 162 49 22]
如何使用熊猫使我的数据框类似以下内容
预期产量
ID,Main
0,30 115 266 38
0,662 99 1199 43
0,511 133 25 47
0,664 162 49 22
答案 0 :(得分:4)
首先对;
的{{1}}进行][
的{{3}} []
,然后在replace
的Series
之间提取值。
最后创建list
,由findall
重塑,并由stack
进行一些数据清理:
DataFrame
s = df['Main'].fillna('').str.replace(';','][').str.findall('\[(.*?)\]')
df = (pd.DataFrame(s.values.tolist(), index=s.index)
.stack()
.reset_index(level=1, drop=True)
.reset_index())
df.columns = ['ID','Main']
print (df)
ID Main
0 0 30 115 266 38
1 0 662 99 1199 43
2 0 511 133 25 47
3 0 664 162 49 22
的另一种解决方案:
Series