首页 > 后端开发 > Python教程 > 如何将 Pandas DataFrame 中的逗号分隔字符串拆分为单独的行?

如何将 Pandas DataFrame 中的逗号分隔字符串拆分为单独的行?

Mary-Kate Olsen
发布: 2025-01-01 02:21:08
原创
366 人浏览过

How Can I Split Comma-Separated Strings in a Pandas DataFrame into Separate Rows?

将逗号分隔的 Pandas Dataframe 字符串拆分为单独的行

在 pandas 数据框中,经常会遇到一个或多个列包含逗号 -需要拆分为单独行的分隔值 (CSV)。为了实现这一点,可以采用以下几种方法:

使用 Series.explode() 或 DataFrame.explode():

此方法在 Pandas 0.25.0 中可用及以上,专为爆炸式列表而设计

df.explode('column_name')
登录后复制

使用向量化函数

对于涉及多个普通列和多个列表列的情况,向量化函数可以提供更通用的解决方案。

def explode(df, lst_cols, fill_value='', preserve_index=False):
    # ... (implementation details)
登录后复制

将 CSV 字符串转换为列表:

如果目标只是将 CSV 字符串转换为列表,则可以通过使用 str.split() 拆分字符串来实现。

df['var1'] = df['var1'].str.split(',')
登录后复制

自定义向量化方法

此方法可以处理多列,包括普通列和列表列

exploded_df = pd.DataFrame({
    col: np.repeat(x[col].values, x[lst_col].str.len())
    for col in x.columns.difference([lst_col])
}).assign(**{lst_col: np.concatenate(x[lst_col].values)})[x.columns.tolist()]
登录后复制

旧解决方案

早期的方法涉及使用 .set_index()、.str.split()、.stack() 和 . reset_index() 来分割 CSV 字符串并将它们堆叠到单独的行中。

这些方法提供了各种选项在 Pandas 数据框中拆分逗号分隔的字符串,以满足特定要求和性能考虑。

以上是如何将 Pandas DataFrame 中的逗号分隔字符串拆分为单独的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板