Python 熊猫选择字符串';超过';公认的数据
我有一个看起来像这样的数据框(股票交易),除了我有100多个事务/行: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
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的交易。