ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame 内のカンマ区切りの文字列を別々の行に分割するにはどうすればよいですか?

Pandas DataFrame 内のカンマ区切りの文字列を別々の行に分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-01 02:21:08340ブラウズ

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

カンマで区切られた Pandas データフレーム文字列を個別の行に分割する

pandas データフレームでは、1 つ以上の列にカンマが含まれることがよくあります。個別の行に分割する必要がある分離値 (CSV)。これを実現するには、いくつかのアプローチを使用できます。

Series.explode() または DataFrame.explode() を使用する:

このメソッドは Pandas 0.25.0 で使用できます。以上であり、特に展開リストのようなもののために設計されています。 columns.

df.explode('column_name')

ベクトル化関数の使用:

複数の通常列と複数のリスト列が関係する状況では、ベクトル化関数を使用すると、より汎用性の高いソリューションを提供できます。

def explode(df, lst_cols, fill_value='', preserve_index=False):
    # ... (implementation details)

CSV 文字列を次のように変換していますLists:

CSV 文字列をリストに変換することだけが目的の場合、str.split() を使用して文字列を分割することで実現できます。

df['var1'] = df['var1'].str.split(',')

カスタム ベクトル化アプローチ:

このアプローチでは、通常とリストの両方を含む複数の列を処理できます。 columns.

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。