熊猫数据框中的分割行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了熊猫数据框中的分割行相关的知识,希望对你有一定的参考价值。
我坚持如何按行划分熊猫数据框的问题,
我具有类似的数据框,其列的值之间用 r n分隔并且它们在一个单元格中,
Color Shape Price
0 Green Rectangle
Triangle
Octangle 10
1 Blue Rectangle
Triangle 15
并且我需要将此单元格划分为其他单元格的值与其他列相同的多个单元格,例如此处
Color Shape Price
0 Green Rectangle 10
1 Green Triangle 10
2 Green Octangle 10
3 Blue Rectangle 15
4 Blue Tringle 15
如何做得更好?
答案
您可以做:
df["Shape"]=df["Shape"].str.split("
")
print(df.explode("Shape").reset_index(drop=True))
输出:
Color Shape Price
0 Green Rectangle 10
1 Green Triangle 10
2 Green Octangle 10
3 Blue Rectangle 15
4 Blue Triangle 15
另一答案
首先,您需要用空白将Shape分开,这将为您提供形状列表。然后,使用df.explode
解压缩列表并为每个列表创建新行
df["Shape"] = df.Shape.str.split()
df.explode("Shape")
另一答案
如前所述,str.split()
后跟explode
是有帮助的。如果您未使用Pandas 0.25,则可以在以后使用melt
:
(pd.concat( (df.Shape.str.split('
', expand=True),
df[['Color','Price']]),
axis=1)
.melt(id_vars=['Color', 'Price'], value_name='Shape')
)
输出:
Color Price variable Shape
0 Green 10 0 Rectangle
1 Blue 15 0 Rectangle
2 Green 10 1 Triangle
3 Blue 15 1 Triangle
4 Green 10 2 Octangle
5 Blue 15 2 None
以上是关于熊猫数据框中的分割行的主要内容,如果未能解决你的问题,请参考以下文章