Pandas のリストの列: 各リスト要素の行の作成
Pandas データフレームでは、リストを含む列を変換する必要がある場合があります。複数の行に分割され、リストの各要素が独自の行を占めます。これを実現するには、2 つの実行可能なオプションがあります。
Pandas>=0.25 の組み込みの Explode メソッド
Pandas バージョン 0.25 以降の場合、.explode( ) メソッドは、この目的のために特別に導入されました。リストを個々の行に効率的に変換します。
df = pd.DataFrame({'trial_num': [1, 2, 3, 1, 2, 3], 'subject': [1, 1, 1, 2, 2, 2], 'samples': [list(np.random.randn(3).round(2)) for i in range(6)] }) df.explode('samples').reset_index(drop=True) # Resetting the index for clarity
このメソッドは、リストとスカラー、および空のリストと NaN を含む混合列を処理します。ただし、Explore は一度に 1 つの列に対して動作することに注意することが重要です。
Pandas のカスタム関数
Pandas の以前のバージョンの場合、カスタム関数を利用できます:
def explode_list_column(df, column): # Create an empty list to store the expanded rows exploded_rows = [] # Iterate through each cell in the specified column for row in df[column]: # Iterate through each element in the list for element in row: # Add a new row to the list, copying data from the current row and adding the new element exploded_rows.append(list(row) + [element]) # Convert the expanded rows into a DataFrame return pd.DataFrame(exploded_rows, columns=df.columns + ['list_element'])
この関数は、DataFrame とリストを含む列の名前を受け取ります。パラメータを取得すると、各リスト要素の列を含む新しい DataFrame が返されます。
# Applying the exploding function exploded_df = explode_list_column(df, 'samples')
以上がリストの Pandas 列を複数の行に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。