我有一个具有以下格式的 Pandas 数据框:
col1 col2 ... col4
A 2 [2-3-4]
B 3 [2-6]
A 3 [2-3-4]
C 2 [2-3-4]
D 2 [2-3-4]
我只想选择 col2 中的值在 col4 列表中的行。
我尝试使用:
df[(df["col2"].isin(df["col4"].str.split("-"))]
但我得到一个空数据框...
最佳答案
我会在此使用列表推导:
df[[str(a) in b for a,b in zip(df['col2'],df['col4'])]]
col1 col2 col4
0 A 2 [2-3-4]
2 A 3 [2-3-4]
3 C 2 [2-3-4]
4 D 2 [2-3-4]
或者使用不会匹配 2 和 22 的正则表达式搜索 #thanks @Nk03
import re
df[[bool(re.search(fr'\b{a}\b',b)) for a,b in zip(df['col2'],df['col4'])]]
关于python - 在Python中的其他列列表中选择具有列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67357815/