Q&A
実現したいこと
pandasデータフレームで、欠損値を含む2列の文字列データにおいて、2列の組み合わせの行番号(index)を返すコードを書きたいのですが、自分では実現できないので、どなたかご教示いただけますでしょうか?
前提
jupyter notebook環境でpythonコードを書いています
発生している問題・予期しない答え
import pandas as pd import numpy as np # データの作成 df = pd.DataFrame({ "A": ["A", "B", "A", "D", "B", "D"], "B": ["B", "C", "B", np.nan, np.nan, np.nan] }) # A列とB列の組み合わせが同じ行のインデックスを取得 result = {} for pair, indices in df.groupby(["A", "B"]).indices.items(): result[pair] = indices print(result) ### 返ってきたこたえ、予期しない答えが返ってきています {('D', 'C'): array([3, 4, 5]), ('A', 'B'): array([0, 2]), ('B', 'C'): array([1])} ### 期待している答え {('A', 'B'): [0, 2], ('B', 'C'): [1], ('D', np.nan): [3, 5],('B', np.nan): [4]}
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/08 02:10