gpt4 book ai didi

python - 解压数据帧值中的集合并复制到行中

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:52 27 4
gpt4 key购买 nike

有一个 pandas 数据框,其中有一列可能是任意长度的集合:

n = np.nan
stack1 = pd.DataFrame.from_dict(
{'letter1': ['a','b','c','y'],
'letter2': [ 'o','p', 'q', 'y'],
'overlap': [ {'v'},{'c'}, {'c'}, {'v', 'c'}]
})
stack1.reset_index(inplace=True, drop=True)

enter image description here

从这个数据框中,我如何解压集合的内容并从每个解压的元素创建新行?如果该解决方案也适用于列表和元组等其他容器,那就太好了。

期望的结果:

enter image description here

最佳答案

试试这个:

In [32]: col_to_unpack = 'overlap'

In [33]: df = stack1.copy()

In [34]: pd.DataFrame({
...: col:np.repeat(df[col].values, df[col_to_unpack].str.len())
...: for col in df.columns.difference([col_to_unpack])
...: }).assign(**{col_to_unpack:np.concatenate(df[col_to_unpack].map(list).values)})[df.columns.tolist()]
...:
Out[34]:
letter1 letter2 overlap
0 a o v
1 b p c
2 c q c
3 y y c
4 y y v

关于python - 解压数据帧值中的集合并复制到行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com