python - 将 Pandas 数据框单元格中的设置值拆分为多行

标签 python pandas

我有一个以下形式的 pandas DataFrame:

    col1           col2
1    a       {hu, fdf, ko, dss}
2    b       {sdsjdn, lk}
3    c       {sds, aldj, dhva}

现在我想将设置值拆分为多行,使其看起来像这样:

    col1           col2
1    a              hu
2    a              fdf
3    a              ko
4    a              dss
5    b              sdsjdn
6    b              lk
7    c              sds
8    c              aldj
9    c              dhva

有人对我如何做到这一点有任何见解吗?

最佳答案

您需要numpy.repeat用于通过 chain.from_iterable 展平另一个设置列来创建新的重复列:

df = pd.DataFrame({ 'col1': ['a','b','c'],
                   'col2': [set({'hu', 'fdf', 'ko', 'dss'}),
                            set({'sdsjdn', 'lk'}),
                            set({'sds', 'aldj', 'dhva'})]})

print(df)
  col1                col2
0    a  {hu, dss, ko, fdf}
1    b        {lk, sdsjdn}
2    c   {dhva, aldj, sds}

from  itertools import chain

df1 = pd.DataFrame({
        "col1": np.repeat(df.col1.values, df.col2.str.len()),
        "col2": list(chain.from_iterable(df.col2))})

print (df1)
  col1    col2
0    a      hu
1    a     dss
2    a      ko
3    a     fdf
4    b      lk
5    b  sdsjdn
6    c    dhva
7    c    aldj
8    c     sds

关于python - 将 Pandas 数据框单元格中的设置值拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42668399/

相关文章:

python - 需要帮助理解和修复 pandas 的波动性实现

python - 如何将 for 循环中的 .pkl 文件 append 到 for 循环中创建的 pandas 数据帧?

Python循环url json数据不存储循环结果

python - 将 XML 提取到以父属性作为列标题的数据框中

python - 回溯时如何存储递归结果?

更新到 MacOS Monterey 后,Python3 和 'code' CLI 不工作

python - 如何使用 sqlalchemy 从 ubuntu 连接远程 Windows MSSQL 服务器

python - Python 列表的 += 运算符是否等同于 append() 或 extend()?

python - 我如何在 Keras 中故意过度拟合卷积神经网络以确保模型正常工作?

python - Pandas 使用 groupby 并根据各种条件删除重复项