【问题标题】:Finding cells that contain '+' or '-' sign - Pandas查找包含“+”或“-”符号的单元格 - Pandas
【发布时间】:2022-01-11 22:41:32
【问题描述】:

试图查看哪些单元格中有“+”号,哪些单元格有“-”号,哪些单元格中都有。

df = pd.DataFrame({"result":['XY: (-Y, 25%)', 'XX: (-5q, 20%);(+18, 20%)', 'XX: (-6q25.3-q27, 11.8Mb, 30%)', 'XX: (-1, 25%);(-10q, 20%)', 'XX: (+5, 20%)']})  
df

我尝试使用str.contain

gain=df.loc[df['result'].str.contains("+7")]
gain

但在尝试传递其中一个字符(+ 或 -)时出错 错误:在位置 0 没有可重复的内容。 当只传递一个数字时

gain=df.loc[df['result'].str.contains("7")]

效果很好 - 没有错误

寻求一些建议。 谢谢

【问题讨论】:

标签: pandas dataframe search


【解决方案1】:

尝试查看哪些单元格中有“+”号,哪些单元格有“-”号,哪些单元格中都有。

你可以试试:

pos=[]
neg=[]
for index in df.index:
    if '+' in df.loc[index,'result']:
        pos.extend([index])
    if '-' in df.loc[index,'result']:
        neg.extend([index])

并检查是否有任何 pos 在 neg 中,例如:

both = []
for item in pos:
    if item in neg:
        both.extend([item])
print(both)

【讨论】:

  • 非常感谢哈维尔!
【解决方案2】:

放反斜杠(转义):

gain=df.loc[df['result'].str.contains("\+7")]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
相关资源
最近更新 更多