我的数据框如下所示:
A B 100 1 100 2 200 2 200 3
我需要找到A和B值的所有可能的组合,并用这些组合和第三列创建新的数据帧,该列指示原始数据框中存在的每个组合:
A B C 100 1 True 100 2 True 100 3 False 200 1 False 200 2 True 200 3 True
我现在是怎么做的:
import pandas as pd
df = pd.DataFrame({'A' : [100,100,200,200], 'B' : [1,2,2,3]})
df['D'] = 42
df2 = df[['A','D']].merge(df[['B','D']], on = 'D')
[['A','B']].drop_duplicates()
i1 = df.set_index(['A','B']).index
i2 = df2.set_index(['A','B']).index
df2['C'] = i2.isin(i1)
print(df2)
它很管用,但看起来很难看。有更干净的方法吗?在
您可以使用:
True
sdf1
索引的级别创建^{df
如果不存在值,则添加False
sMultiIndex
的列使用
cartesian_product
和pd.merge
对于库姆斯,你也可以
^{pr2}$在
itertools
和tuple
的帮助下输出:
^{pr2}$相关问题 更多 >
编程相关推荐