将逗号分隔的 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中文网其他相关文章!