【问题标题】:How to replicate rows based on the values of a column如何根据列的值复制行
【发布时间】:2022-01-19 15:33:47
【问题描述】:

由于数据框:

data={'a':'1',
      'b': '1,2,3',
      'c':'2'}

Out:    a    b    c
     0  1  1,2,3  2

我想为 b 列中的每个值复制行:

Out:    a    b    c
     0  1    1    2
     1  1    2    2
     2  1    3    2

有没有办法做到这一点?

【问题讨论】:

  • df.explode('b')
  • 当(例如)列 C 的值为 '1,2' 时,您期望什么类型的输出?
  • 我没想到:c

标签: python pandas dataframe


【解决方案1】:

如果您的列是给定的逗号分隔值的字符串,您可以使用:

>>> data={'a':'1',
...       'b': '1,2,3',
...       'c':'2'}
>>> df = pd.DataFrame([data])
>>> df['b'] = df['b'].str.split(',')
>>> df.explode('b')

out:
   a  b  c
0  1  1  2
0  1  2  2
0  1  3  2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-26
    • 2018-12-09
    • 1970-01-01
    • 2021-11-20
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多