gpt4 book ai didi

excel - 将逗号分隔的单元格内容转换为同一列中的多个单元格

转载 作者:行者123 更新时间:2023-12-04 20:30:06 25 4
gpt4 key购买 nike

我有一个包含以下类型数据的 excel 文件。

Pink_Floyd,Beatles,Pearl_Jam,Porcupine_Tree 5.56

数据由相同类型的行组成。数值在下一个单元格中。
我想将其转换为以下格式-
Pink_Floyd 5.56
Beatles 5.56
Pearl_Jam 5.56
Porcupine_Tree 5.56

怎么做?

最佳答案

利用:

df = pd.DataFrame({'A': ['Pink_Floyd,Beatles,Pearl_Jam,Porcupine_Tree', 'Beatles'], 
'B': [5.56, 10.0]})
print (df)
A B
0 Pink_Floyd,Beatles,Pearl_Jam,Porcupine_Tree 5.56
1 Beatles 10.00
s = (df.pop('A').str.split(',', expand=True)
.stack()
.reset_index(level=1, drop=True)
.rename('A'))

df = df.join(s).reset_index(drop=True)[['A','B']]

解释 :
  • 提取列A pop
  • 那么 split DataFrame
  • stack reshape
  • 那么 reset_index 用于删除 MultiIndex 的第一级
  • 通过 rename 更改列名
  • 最后 join list 更改为原始列顺序,如有必要,可更改列顺序

  • 或新建 DataFrame通过构造函数:
    from itertools import chain

    a = df['A'].str.split(',')

    df = pd.DataFrame({
    'A' : list(chain.from_iterable(a.values.tolist())),
    'B' : df['B'].values.repeat(a.str.len())
    })
    print (df)
    A B
    0 Pink_Floyd 5.56
    1 Beatles 5.56
    2 Pearl_Jam 5.56
    3 Porcupine_Tree 5.56
    4 Beatles 10.00

    关于excel - 将逗号分隔的单元格内容转换为同一列中的多个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365846/

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