首页 > 解决方案 > 将一行翻译成几行

问题描述

如何从表 1 中获取表 2?

表格1

表2

第一个表的主要缺点是数字可以用逗号或空格或非数字字符分隔。就像在此样品中。

标签: python-3.xpandasdataframe

解决方案


用于Series.str.findall提取要列出的数字,然后DataFrame.explode

df1 = df.assign(A = df['A'].str.findall('\d+')).explode('A').reset_index(drop=True)

对于最旧的熊猫版本,可以Series.str.extractall使用DataFrame.join

c = df.columns
s = df.pop('A').str.extractall('(\d+)')[0].reset_index(level=1, drop=True).rename('A')

df = df.join(s).reindex(c, axis=1)

推荐阅读