分解行 pandas 数据框
Explode rows pandas dataframe
我有一个 pandas 数据框,如下所示:
Letters
Date
'Letters : a'
2021
'Letters : a,b,c'
2019
'Letters : a,b'
2017
我想变成下面的样子,使用pandas/python。
Letters
Date
a
2021
a
2019
b
2019
c
2019
a
2017
b
2017
提前致谢
在使用explode
之前,我们可以使用Series.str.split
将相关信息解析成list
。
df.assign(
Letters=df.Letters \
.str \
.split(" : ", expand=True)[1] \
.str.split(",") \
) \
.explode("Letters")
Letters Date
0 a 2021
1 a 2019
1 b 2019
1 c 2019
2 a 2017
2 b 2017
请注意,此答案中未重置索引,如果需要,您可以调用 reset_index
。
在split
你的值之后使用explode
:
>>> df.assign(Letters=df['Letters'].str.split(',')).explode('Letters')
Letters Date
0 a 2021
1 a 2019
1 b 2019
1 c 2019
2 a 2017
2 b 2017
我有一个 pandas 数据框,如下所示:
Letters | Date |
---|---|
'Letters : a' | 2021 |
'Letters : a,b,c' | 2019 |
'Letters : a,b' | 2017 |
我想变成下面的样子,使用pandas/python。
Letters | Date |
---|---|
a | 2021 |
a | 2019 |
b | 2019 |
c | 2019 |
a | 2017 |
b | 2017 |
提前致谢
在使用explode
之前,我们可以使用Series.str.split
将相关信息解析成list
。
df.assign(
Letters=df.Letters \
.str \
.split(" : ", expand=True)[1] \
.str.split(",") \
) \
.explode("Letters")
Letters Date
0 a 2021
1 a 2019
1 b 2019
1 c 2019
2 a 2017
2 b 2017
请注意,此答案中未重置索引,如果需要,您可以调用 reset_index
。
在split
你的值之后使用explode
:
>>> df.assign(Letters=df['Letters'].str.split(',')).explode('Letters')
Letters Date
0 a 2021
1 a 2019
1 b 2019
1 c 2019
2 a 2017
2 b 2017