Python 熊猫选择字符串';超过';公认的数据

Python 熊猫选择字符串';超过';公认的数据,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个看起来像这样的数据框(股票交易),除了我有100多个事务/行: id, transaction, symbol, qty, price 1, YOU SOLD, NSYS, -20, $5.70 2, YOU SOLD, LMPX, -20, $14.89 3, YOU SOLD, DKNG, -5, $40.5126 4, YOU SOLD 20238F0JQC, ALYA, -10, $1.98 5, YOU BOUGHT, KMDA, 10, $11.69 6, YOU SOLD

我有一个看起来像这样的数据框(股票交易),除了我有100多个事务/行:

id, transaction, symbol, qty, price
1, YOU SOLD, NSYS, -20, $5.70
2, YOU SOLD, LMPX, -20, $14.89
3, YOU SOLD, DKNG, -5, $40.5126
4, YOU SOLD 20238F0JQC, ALYA, -10, $1.98
5, YOU BOUGHT, KMDA, 10, $11.69
6, YOU SOLD 20237GVGCW, CLPS,-1, $3.79
我只想选择具有“YOU Sald…”的行,忽略具有“YOU Sald…”和“YOU Bund”的其他行

所以在这个数据集中,我只想获取第4行和第6行

不必遍历行,最好的方法是什么

谢谢
-Ven

最简单的是选择包含子字符串且不匹配字符串的所有行的链条件,如:

df1 = df[df['transaction'].str.contains('YOU SOLD') & df['transaction'].ne('YOU SOLD')]
print (df1)
   id          transaction   symbol    qty  price
3   4  YOU SOLD 20238F0JQC     ALYA    -10  $1.98
5   6  YOU SOLD 20237GVGCW  CLPS,-1  $3.79   None
或更改使用空格选择的值:

df1 = df[df['transaction'].str.contains('YOU SOLD\s+')]
print (df1)
   id          transaction   symbol    qty  price
3   4  YOU SOLD 20238F0JQC     ALYA    -10  $1.98
5   6  YOU SOLD 20237GVGCW  CLPS,-1  $3.79   None

请更好地解释标准。我看到每一行既有卖出的,也有买入的,请提供列names@gtomer-谢谢你的建议,我更新了问题。标准仍然不清楚。为什么不选择1、2、3?@gtomer我正在构建一个交易系统,希望删除类似4和6的交易。