【发布时间】:2019-06-25 15:35:02
【问题描述】:
我有一个大约 2M 字符串的列表和一个大约 800 个单词的列表。我创建了一个数据框,其中字符串作为行,单词作为列。除字符串变量外,所有其他变量都是对应于单词是否在字符串中的真或假值。没有缺失值。
即
import pandas as pd
df = pd.DataFrame({'strings':['a string with california',
'a string with lobster',
'a str with california and lobster'],
'california':[True,False,True],
'lobster':[False,True,True],
'string':[True,True,False],})
由于数据框太长太宽,无法一次查看,我想要一个变量来列出对特定行具有真实值的列名。例如,
df_filtered = pd.DataFrame({'strings':['a string with california',
'a string with lobster',
'a str with california and lobster'],
'matches':[['string','california'],
['string', 'lobster'],
['california', 'lobster']],
'california':[True,False,True],
'lobster':[False,True,True],
'string':[True,True,False],})
我是 pandas 的新手,我发现我可以使用以下命令创建包含缺失值的列名列表
columns_w_na = df.columns[df.isnull().any()].tolist()
有没有一种方法,我可以为每一行类似地捕获具有特定值的列的名称并将其表示为一个列表?
【问题讨论】:
标签: python string pandas boolean filtering