データフレーム列の文字列値とセルの値を比較して、複数値ディクショナリに基づいて新しいデータフレームを作成するにはどうすればよいですか?

RustyShackleford

私は次のようなdfを持っています:

id.1.value.1        id.2.value.2      id.1.question    id.2.value.2
TRUE                     FALSE             TRUE             TRUE

dfの列名をスキャンし、列名に含まれる列名からのみ最後の番号を抽出し、value含まれる列のセルの値valueを次のロジックと比較するロジックを作成したいと思います

  1. 列の値がvalue等しい場合TRUEは、複数値ディクショナリの最後の数値を比較します

  2. マルチキーディクショナリの2番目の値を使用して、データフレームの列名を作成します

例:

my_dict = {1: ('a', 'category'),2: ('b', 'category'),\
           3: ('c', 'category'),4:('d','category'),\
           5:('e','subcategory'),6:('f','subcategory'),\
           7:('g','subcategory'),8:('h','subcategory'),\
           9:('i','subcategory'),10:('j','subcategory'),\
           11:('k','subcategor'),12:('l','subcategory'),\
           13:('m','subcategory'),14:('n','subcategory'),\
           15:('o','subcategory'),16:('p','subcategory'),\
           17:('q','subcategory'),18:('r','subcategory'),\
           19:('s','subcategory'),20:('t','subcategory'),\
           21:('u','subcategory'),22:('v','subcategory'),\
           23:('w','subcategory'),24:('x','subcategory')

           }

私の現在のdfが次のように見える場合:

id.1.value.1        id.2.value.2      id.1.question    id.6.value.6
    TRUE                 FALSE             TRUE             TRUE

新しいdfは次のようになります。

category    subcategory
a               f
ハーツ
names = df.columns
new_df = pd.DataFrame()
for name in names:    
    if ('value' in name) & df[name][0]:
        last_number = int(name[-1])
        key, value = my_dict[last_number]
        try:
            new_df[value][0] = list(new_df[value][0]) + [key]
        except:
            new_df[value] = [key]      

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ