ホーム>source

「NaN」の値をカンマに置き換えて、Pandas DataFrame列を連結しようとしています。

<前>ウィズウィズ

出力が必要です:-

<前>ウィズウィズ

基本的に私は df = pd.DataFrame({'col1' : ["1","2","3","4","5",np.nan], 'col2' : ["p1","p2","p1",np.nan,"p2",np.nan], 'col3' : ["A","B","C","D","E","F"]}) df col1 col2 col3 0 1 p1 A 1 2 p2 B 2 3 p1 C 3 4 NaN D 4 5 p2 E 5 NaN NaN F の各行に同じ数のコンマが必要です 。

事前に助けてくれてありがとう

col1 col2 col3 col4 0 1 p1 A 1, p1, A 1 2 p2 B 2, p2, B 2 3 p1 C 3, p1, C 3 4 NaN D 4, , D 4 5 p2 E 5, p2, E 5 NaN NaN F , , F
あなたの答え
  • 解決した方法 # 1

    欠損値を DataFrame.fillna で置き換える 、次に join を使用します  行ごと:

    <前>ウィズウィズ

    または df['col4'] = df.astype(str).fillna('').apply(', '.join, axis=1) を追加  そして , を使用して  参加の場合、最後の最後の sum を削除  によって ,

    <前>ウィズウィズ

    または、各列を個別に処理します。

    <前>ウィズウィズ
    <前>ウィズウィズ Series.str.rstrip

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ bash - 入力を配列として読み取り、シェルスクリプトで変数として使用する方法