【发布时间】:2017-08-14 01:01:44
【问题描述】:
我想以特定方式使用pandas.groupby。给定一个带有两个布尔列(称为 col1 和 col2)和一个 id 列的 DataFrame,我想通过以下方式添加一个列:
对于每个条目,如果 (col2 为 True) 并且 (col1 对于任何具有相同 id 的条目为 True) 则分配 True。否则为假。
我做了一个简单的例子:
df = pd.DataFrame([[0,1,1,2,2,3,3],[False, False, False, False, False, False, True],[False, True, False, False, True ,True, False]]).transpose()
df.columns = ['id', 'col1', 'col2']
给出以下DataFrame:
id col1 col2
0 0 False False
1 1 False True
2 1 False False
3 2 False False
4 2 False True
5 3 False True
6 3 True False
根据上述规则,应添加以下应该列:
0 False
1 False
2 False
3 False
4 False
5 True
6 False
有什么优雅的方法可以做到这一点吗?
【问题讨论】:
标签: python python-3.x pandas dataframe pandas-groupby