Python 从集合创建布尔数据帧
我想从集合中创建一个布尔数据帧 因此有4个集合,每个集合包含一组名称Python 从集合创建布尔数据帧,python,pandas,dataframe,set,boolean,Python,Pandas,Dataframe,Set,Boolean,我想从集合中创建一个布尔数据帧 因此有4个集合,每个集合包含一组名称 a = { a collection of names } b = { another collection of names} c = { ... } d = { ... } 结果应该是如下所示的数据帧: Name | a | b | c | d -------------------------------------- 'John' | True | True | Fals
a = { a collection of names }
b = { another collection of names}
c = { ... }
d = { ... }
结果应该是如下所示的数据帧:
Name | a | b | c | d
--------------------------------------
'John' | True | True | False | True
'Mike' | False | True | False | False
.
.
.
我想要一种在Python中使用Pandas并以高效的方式实现这一点的方法
一种方法是选择每个名称并查看它是否在每个集合中,然后将该名称添加到数据帧中。但是应该有更快的方法,比如合并集合和应用一些函数。我已经收集了一些随机样本数据,可以进行缩放:
a = ['foo', 'bob']
b = ['foo', 'john', 'jeff']
df
name
0 jeff
1 john
2 bob
df['a'] = df.name.isin(a)
df['b'] = df.name.isin(b)
df
name a b
0 jeff False True
1 john False True
2 bob True False
我收集了一些随机样本数据,这些数据应该可以扩展:
a = ['foo', 'bob']
b = ['foo', 'john', 'jeff']
df
name
0 jeff
1 john
2 bob
df['a'] = df.name.isin(a)
df['b'] = df.name.isin(b)
df
name a b
0 jeff False True
1 john False True
2 bob True False
以下是一种可能的方法:
a = {'John', 'Mike'}
b = {'Mike', 'Jake'}
pd.DataFrame.from_dict({
'a': dict.fromkeys(a, True),
'b': dict.fromkeys(b, True),
}).fillna(False)
ab
杰克是假是真
约翰真假
迈克:真的
dict.fromkeys(…,True)
为您提供
{'John': True, 'Mike': True}
当传递到
DataFrame
时,此字典被解释为一个系列。Pandas负责对齐索引,因此最终数据帧通过所有集合的并集进行索引。以下是一种可能的方法:
a = {'John', 'Mike'}
b = {'Mike', 'Jake'}
pd.DataFrame.from_dict({
'a': dict.fromkeys(a, True),
'b': dict.fromkeys(b, True),
}).fillna(False)
ab
杰克是假是真
约翰真假
迈克:真的
dict.fromkeys(…,True)
为您提供
{'John': True, 'Mike': True}
当传递到
DataFrame
时,此字典被解释为一个系列。Pandas负责对齐索引,因此最终的数据帧通过所有集合的并集进行索引。到目前为止您尝试了什么?请同时发布示例数据。到目前为止,您尝试了什么?请也张贴样本数据。