使用pandas基于其他y列布尔值提取x列值True值

kg7wmglp  于 2023-06-20  发布在  其他
关注(0)|答案(2)|浏览(152)

我有一个pandas dataframe(xy):
| X线|y|
| - -----|- -----|
| 价值1|真的|
| 价值观2|真的|
| 价值3|假的|
| 价值观4|真的|
| 价值观5|假的|
| 价值观6|真的|
目标是提取值 从列x中,出现在列y中,基于布尔值 从表y到列表的“True”。
以下是我迄今为止尝试过的,但没有成功(参考:https://stackoverflow.com/questions/67230827/pandas-dataframe-select-column-by-boolean-values-in-matching-dataframe):
lst = (xy['x'].loc[:, xy['x'].isin(xy['y'])]).tolist()
下面是我期望的结果:
[value1, value2, value4, value6]

7uhlpewt

7uhlpewt1#

首先需要过滤:

df = df[df['y']]

然后转换为列表:

lst = df['x'].tolist()
vvppvyoh

vvppvyoh2#

首先,过滤dataframe,只得到y包含值True的行。

df[df['y']]

然后,获取这个已过滤 Dataframe 的x列,该列现在只包含y包含值True的行

df[df['y']]['x']

最后,使用.tolist()将其转换为列表:

print(df[df['y']]['x'].tolist())

将输出

['value1', 'value2', 'value4', 'value6']

相关问题