我有很多类别,其中的项目都在列表中,例如:
colors = ['green', 'red']
animals = ['cat', 'dog']
我有一个很大的数据框,它包含以下类别中的所有项:
largedf = pd.DataFrame({'arow': ['row1', 'row2', 'row3', 'row4'], 'green': ['a', 'b', 'b', 'a'], 'red': ['a', 'b', 'b', 'a'],
'cat': ['b', 'a', 'b', 'a'], 'dog': ['b', 'a', 'b', 'a']})
arow cat dog green red
0 row1 b b b a
1 row2 a a b b
2 row3 b b b b
3 row4 a a a a
我只想保存a
是某个类别的值的行,并且只保存该类别的值。row3
不会被保存,因为它对所有项都有b
;而row4
不会被保存,因为它对所有项都有a
。你知道吗
row1
将被保存,因为它有a
表示red
(即使有b
表示绿色,但至少有一个a
在该类别中)。你知道吗
row2
将被保存,因为在cat/dog
中至少有一个a
(在本例中,两个中都有一个a
)。你知道吗
对于每个保存的行,我希望有一列列出具有a
的类别和该类别中a
的百分比(请参见下面的输出)。你知道吗
shorterdf = pd.DataFrame({'arow': ['row1', 'row2'], 'green': ['a', 'b'], 'red': ['a', 'b'], 'cat': ['b', 'a'], 'dog': ['b', 'a']})
arow cat dog green red category percent
0 row1 b b b a colors 0.5
1 row2 a a b b animals 1
我们用nunique过滤掉我们需要的行
然后我们使用
map
将列更改为类别创建一个方便的字典来重命名现有数据帧的列
详细信息
相关问题 更多 >
编程相关推荐