我有一个看起来像这样的df
data.answers.1542213647002.subItemType data.answers.1542213647002.value.1542213647003
thank you for the response TRUE
如何仅将具有字符串.value.
和具有值TRUE
的列的列名称切成新的df,像这样?
new_df
old_column_names
data.answers.1542213647002.value.1542213647003
我大约还有100列,其中包含.value.
,但并非所有列中的值都为TRUE。
答案 0 :(得分:1)
假设此样本为df:
df = pd.DataFrame({'col':[1,2]*5,
'col2.value.something':[True,False]*5,
'col3.value.something':[5]*10,
'col4':[True]*10})
然后
# boolean indexing with stack
new = pd.DataFrame(list(df[((df==True) & (df.columns.str.contains('.value.')))].stack().index))
# drop duplicates
new = new.drop(columns=0).drop_duplicates()
1
0 col2.value.something