从其他数据框中选择具有特定条件的行

2024-04-19 07:34:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据帧df,它有一列:

colors
red
blue
green
black
pink

以及另一个数据帧df1,它有许多列(~300列):

colorName col1 col2 ... colN
pink 1 0 1 ... 0
white 0 1 1 ... 1
blue 1 0 0 ... 0
yellow 0 0 0 ... 0

我需要的是返回它存在于df1.colorName中的df行,并且在任何列中至少有值1(col1。。。科恩)

因此,从上面来看,输出应该是:

blue
pink

我从这个开始,但我确信它需要一个附加条件(检查在任何列(col1。。。科恩)

newDF = df[df.colors.isin(df1.colorName) && ]

如果我错了,请纠正我,任何帮助都将不胜感激。你知道吗


Tags: 数据dfgreenblueredcol2col1black
1条回答
网友
1楼 · 发布于 2024-04-19 07:34:30

^{}与select columns by^{}一起使用-对于每行至少有一个True和列^{},所有不首先使用^{}的列,首先使用colorName并将其传递给^{}筛选:

c = df1.loc[df1.iloc[:, 1:].any(axis=1), 'colorName']
#alternative
#c = df1.loc[df1.drop('colorName', axis=1).any(axis=1), 'colorName']
newDF = df[df. colors.isin(c)]
print (newDF)
  colors
1   blue
4   pink

细节

print (c)
0     pink
1    white
2     blue
Name: colorName, dtype: object

相关问题 更多 >