私は次のようなdfを持っています:
id.1.value.1 id.2.value.2 id.1.question id.2.value.2
TRUE FALSE TRUE TRUE
dfの列名をスキャンし、列名に含まれる列名からのみ最後の番号を抽出し、value
含まれる列のセルの値value
を次のロジックと比較するロジックを作成したいと思います。
列の値がvalue
等しい場合TRUE
は、複数値ディクショナリの最後の数値を比較します
マルチキーディクショナリの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]
コメントを追加