QT如何读出字符串中某两位的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT如何读出字符串中某两位的值相关的知识,希望对你有一定的参考价值。
在Qt中,获得一个字符串QString str,如何读取该字符串第五和第六位的值。并判断这两位数是否为“ff”,若不是,则显示“成功”,并显示这两位数。若为“ff”,则显示“失败”。
QString temp=str.mid(4,2);if(temp!="ff")
qDebug()<<"成功"<<endl;
else
qDebug()<<“失败”<<endl;
参考技术A 这涉及QString的基础用法,请认真看QString中的方法列表获取详细帮助。
这里可以直接通过indexOf,给与参数为"ff", 返回值为检索到的index
如果index为题目中所述的起始位--5位,则显示所述的“成功”
有问题HI~ 参考技术B 这涉及QString的基础用法,请认真看QString中的方法列表获取详细帮助rv这里可以直接通过indexOfr给与参数为&quot;ff&quot;zdh 返回值为检索到的index如果index为题目中所述的起始位--5位28则显示所述的“成功”有问题HI~
Pandas:如何修改DataFrame中某一列的值?
写这篇博客主要是因为在修改DataFrame列值的时候经常遇到bug,但到目前还没把这种错误复现出来。
DataFrame是Pandas中的主要数据结构之一,本篇博客主要介绍如何DataFrame中某一列的值进行修改。
1 常规方法
这部分主要介绍修改DataFrame列值的常规方法。为了方便后续说明先构建如下数据:
import pandas as pd
import numpy as np
df=pd.DataFrame([['A',1],['B',2],['C',5],['D',4],['E',10],['F',13],['G',8]],
columns=['col_1','col_2'],
index=list('abcdefg'))
df结果如下:
- 使用常量修改DataFrame列的值
使用一个常量对DataFrame列中的数据进行修改时,代码举例如下:
df1=df.copy()
df1['col_1']='H'
df1.loc[['a','c','d'],'col_2']=100 #将指定索引的列值进行修改
df1.iloc[4:,-1]=200
df1的结果如下:
- 使用List\\array修改DataFrame列的值
当需要对DataFrame列中的多个值进行修改时,可以使用List或array等变量型数据来对其进行修改。具体代码如下:
df2=df.copy()
df2['col_1']=list(range(7))
df2.loc[df2.index<='d','col_2']=np.array([15,20,25,30])
df2.iloc[4:,-1]=np.array([10,5,0])
df2的结果如下:
- 使用Series/DataFrame修改DataFrame列的值
除了以上两种数据类型之外,还可以使用Series型数据来修改DataFrame列的值。但使用这种方法时,需要索引对齐,否则会出错。具体举例如下:
df3=df.copy()
df3['col_1']=pd.Series([1,2,3,4,5,6,7]) #索引不对齐时不会报错,但没有成功修改列值。
df3.loc[['a','b','c'],'col_2']=pd.Series([100,200,300],index=list('abc'))
df3.iloc[3:,-1]=pd.DataFrame([[4000],[5000],[6000],[7000]],index=list('cdef'))
其结果如下:
2. replace方法
DataFrame对象自带的方法replace()也可以实现列值的修改。该方法中的参数主要有以下几个:
参数 | 作用 |
---|---|
to_replace | 确定需要修改列值的数据。可接受的数据类型有:str, regex, list, dict, Series, int, float, or None |
value | 指定修改后的值。可接受的数据类型有:scalar, dict, list, str, regex, default None |
inplace | 是否本地置换 |
limit | 指定前后填充的最大次数 |
regex | 正则表达式符号。如果需要在to_replace中使用字符串形式的正则表达式对数据进行筛选的话,需要将其设置为True。 |
method | 填充方式。‘pad’, ‘ffill’, ‘bfill’, None |
创建如下数据,具体如下:
df=pd.DataFrame([['A','A'],['B','B'],['C',5],['D',4]],
columns=['col_1','col_2'],
index=list('abcd'))
df的结果如下:
- 对整个DataFrame中的指定数据进行替换
#A替换为aaa,B替换为bbb,4替换为100
df_1=df.replace(to_replace=['A','B',4],value=['aaa','bbb',100])
#将A替换为AAAA
df_2=df.replace(to_replace='A',value='AAAA')
#将A替换为AAAAA,5替换为2000
df_3=df.replace(to_replace="A":'AAAAA',5:2000)
其结果如下:
- 对DataFrame中的不同列指定不同的替换方式
#对于col_1列:将A替换为1,B替换为2
#对于col_2列:将A替换为100,B替换为200
df_4=df.replace("col_1":'A':1,'B':2,"col_2":"A":100,"B":200)
其结果如下:
- 使用正则表达式筛选数据
#将A\\B替换成new
df_5=df.replace(to_replace=r'[AB]',value='new',regex=True)
其结果如下:
以上是关于QT如何读出字符串中某两位的值的主要内容,如果未能解决你的问题,请参考以下文章