以下に示すように、2つのデータフレームdf1とdf2があり、どちらもそれぞれ8つの列で構成されています。
**df1**
╔══════════════════════════════════════════════════════════╗
║John ║ Mark ║ Jane ║ Natasha ║ Oliver ║ Tony ║ Judd ║ Ron ║
╚══════════════════════════════════════════════════════════╝
**df2**
╔══════════════════════════════════════════════════╗
║True ║True ║False ║True ║False ║False ║False ║True║
╚══════════════════════════════════════════════════╝
df1にはさまざまな人の名前である列があり、df2にはブール値である列名があります。私は何をしたいのすべての列をドロップでDF1の対応する値持つ偽でDF2を。したがって、結果の出力は次のようになります。
**output**
╔════════════════════════════╗
║John ║ Mark ║ Natasha ║ Ron ║
╚════════════════════════════╝
csvファイルから両方のデータフレームを読み取っています。
ありとあらゆる助けをいただければ幸いです。
注:実際のデータフレームには、それぞれ500列があります。視覚化の目的で、またデータフレームに同じ数の列があることを示すために例として8を使用しました
前もって感謝します
基本的なインデックスを使用して、できます。ただし、を解析するdf2
と、列名が重複して変更されるため、少しクリーニングが必要になります。
セットアップ
names = ['John', 'Mark', 'Jane', 'Natasha', 'Oliver', 'Tony', 'Judd', 'Ron']
cols = ['TRUE', 'TRUE.1', 'FALSE', 'FALSE.1', 'TRUE.2', 'FALSE.2', 'FALSE.3', 'TRUE.3']
df1 = pd.DataFrame(columns=names)
df2 = pd.DataFrame(columns=cols)
df1.loc[:, df2.columns.str.contains('TRUE')]
Empty DataFrame
Columns: [John, Mark, Oliver, Ron]
Index: []
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加