如何将Pandas中color列字符串按空格拆分并生成其他列重复的行
在Pandas DataFrame中按空格(单个或多个)拆分列并展开为多行
你可以通过正则表达式拆分结合行展开的方式实现需求,以下是具体代码:
import pandas as pd data = {'color': ['black green', 'red', ' white orange', 'jack','blue green'], 'Name': ['Tom', 'nick', 'krish', 'jack','bob'], 'level_1': [2, -3, 7, -4,-2], } df = pd.DataFrame(data) # 拆分color列(匹配任意数量空格)并展开为多行 df_result = df.assign(color=df['color'].str.split(r'\s+')).explode('color', ignore_index=True) print(df_result)
关键步骤说明:
str.split(r'\s+'):利用正则表达式\s+匹配任意数量的空白字符(包括单个空格、两个空格),确保不同空格分隔的字符串都能被正确拆分为列表。assign():替换原有的color列,存储拆分后的列表数据。explode('color'):将列表格式的color列展开为独立行,同时自动保留Name、level_1等其他列的对应值;ignore_index=True会重置结果的索引,避免出现重复索引。
运行后得到的结果与你给出的df2完全一致。
内容的提问来源于stack exchange,提问作者dimzev
相关产品推荐
相关产品推荐

