【问题标题】:How do I flatten A Python DataFrame by an index and a list of values? [duplicate]如何通过索引和值列表展平 Python DataFrame? [复制]
【发布时间】:2020-04-21 13:32:53
【问题描述】:

假设我有以下代码

import pandas as pd

cars = {'Index': [1, 2, 3, 4],
        'Values': ['A, B, C, D', 'A, B', 'C', 'D']
        }

df = pd.DataFrame(cars, columns = ['Index', 'Values'])

print (df)

它创建了一个看起来像这样的 DataFrame...

   Index      Values
0      1  A, B, C, D
1      2        A, B
2      3           C
3      4           D

我如何获取该数据框,并创建一个看起来像这样的新数据框...

   Index      Values
0      1           A
1      1           B
2      1           C
3      1           D
4      2           A
5      2           B
6      3           C
7      4           D

【问题讨论】:

  • df.assign(Values=df['Values'].str.split(',')).explode('Values')

标签: python pandas python-2.7 dataframe


【解决方案1】:
df.Values = df.Values.str.split(",")
df = df.explode('Values').reset_index(drop=True)


 Index Values
0      1      A
1      1      B
2      1      C
3      1      D
4      2      A
5      2      B
6      3      C
7      4      D

【讨论】:

  • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 2019-01-31
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 2013-08-23
相关资源
最近更新 更多