Python &引用;及;函数在字符串中的位置
我对python还相当陌生,我一直在尝试使用pandas来处理python,这在excel中很难完成 我一直在尝试编写代码,根据字符串和字母的位置数过滤数据 到目前为止,我有以下几点Python &引用;及;函数在字符串中的位置,python,python-3.x,pandas,sorting,filter,Python,Python 3.x,Pandas,Sorting,Filter,我对python还相当陌生,我一直在尝试使用pandas来处理python,这在excel中很难完成 我一直在尝试编写代码,根据字符串和字母的位置数过滤数据 到目前为止,我有以下几点 import pandas as pd df = pd.read_excel (r'C:\Users\Main\Desktop\dataset.xlsx') df.loc[df['Name'].str[1]=='a'] & df.loc[df['Name'].str[2]=='x'] 我试图做的是根据名称
import pandas as pd
df = pd.read_excel (r'C:\Users\Main\Desktop\dataset.xlsx')
df.loc[df['Name'].str[1]=='a'] & df.loc[df['Name'].str[2]=='x']
我试图做的是根据名称获取行。
换句话说,程序通过“Name”列进行过滤,如果第二个字母是“a”,第三个字母是“x”,那么它应该打印过滤后的行
现在,我应该说,当我只使用“a”时,这很好用
所以,当我的代码看起来像下面的代码时,程序就工作了
import pandas as pd
df = pd.read_excel (r'C:\Users\Main\Desktop\dataset.xlsx')
df.loc[df['Name'].str[1]=='a']
当我为附加过滤器添加“&”符号时,我遇到了麻烦
任何建议都会有帮助。我对这方面还不太熟悉,所以任何建议都将不胜感激。我试图通过for循环解决这个问题,但我认为我上面采用的方法稍微好一些。在使用
&
运算符时,必须确保正确使用括号:
$df=pd.DataFrame(数据=[''u ab','u ax','u xy','abcd'],列=['Name'])
$df
名称
0_ab
1_ax
2_xy
3 abcd
#正确的括号很重要!:
$df.loc[(df.Name.str[1]='a')&(df.Name.str[2]='x')]
名称
1_ax
Try:df[df['Name'].str[1]='a'&df['Name'].str[3]='a']]
您可能需要将测试用括号括起来,以确保它们按预期顺序排列。[(测试1)和(测试2)]
@vedbrambhatt您为什么要创建新帐户来提问?几小时前,你在早上问了一个类似的问题。你不会给正确回答你问题的人任何分数。这不好。嘿,鲍勃,谢谢。这很有效。不过我确实有一个问题。我想知道为什么我用“.int”或“.float”替换“.str”不起作用。我用另一个包含整数的列尝试了这一点,并将str改为integer,但它不起作用,我想知道您是否可以为我指出正确的方向。简单的回答是str的处理方式不同于int/float。有关str访问器的更多信息,请访问此处的pandas文档:。对于int/float列,您不需要访问器,只需处理这些列即可。(df.a>3
例如)