以下选项都会返回Series。创建一个新框架并将其转换为列表形式。
pd.DataFrame(s.tolist()).stack()
0 0 United States of America
1 0 China
1 Hong Kong
dtype: object
重置索引,请使用
pd.DataFrame(s.tolist()).stack().reset_index(drop=True)
0 United States of America
1 China
2 Hong Kong
dtype: object
要转换为DataFrame,请调用
to_frame()
。
pd.DataFrame(s.tolist()).stack().reset_index(drop=True).to_frame('countries')
countries
0 United States of America
1 China
2 Hong Kong
如果您想进行代码高尔夫比赛,请使用:
sum(s, [])
pd.Series(sum(s, []))
0 United States of America
1 China
2 Hong Kong
dtype: object
甚至可以说,
pd.Series(np.sum(s))
0 United States of America
1 China
2 Hong Kong
dtype: object
然而,像大多数涉及列表求和的操作一样,这种做法在性能方面较差(列表连接操作效率低下)。
使用 itertools.chain
进行链接操作可以获得更快的速度:
from itertools import chain
pd.Series(list(chain.from_iterable(s)))
0 United States of America
1 China
2 Hong Kong
dtype: object
pd.DataFrame(list(chain.from_iterable(s)), columns=['countries'])
countries
0 United States of America
1 China
2 Hong Kong