Python 熊猫:字符串的条件
我有数据帧,如果某个列包含Python 熊猫:字符串的条件,python,pandas,Python,Pandas,我有数据帧,如果某个列包含avito并且不包含telefony,我想从数据帧中删除字符串。 我可以写条件 df1=df[~df.url.str.contains(r“avito”)] 但我不知道如何使用telefony 数据: 期望输出: url avito.ru/mytischi/telefony/sim_karty_s_nulevym_balansom_bonus_689217820 avito.ru/moskva/telefony/blackberry_bold_new_rost-test
avito
并且不包含telefony
,我想从数据帧中删除字符串。
我可以写条件
df1=df[~df.url.str.contains(r“avito”)]
但我不知道如何使用telefony
数据:
期望输出:
url
avito.ru/mytischi/telefony/sim_karty_s_nulevym_balansom_bonus_689217820
avito.ru/moskva/telefony/blackberry_bold_new_rost-test_original_697592392
avito.ru/moskva/telefony/blackberry_bold_blask_new_e._a._c._rost-test_696289049
vk.com
您希望复合布尔条件并对其求反:
In [18]:
df[~(df['url'].str.contains('avito') & ~df['url'].str.contains('telefony'))]
Out[18]:
url
0 avito.ru/mytischi/telefony/sim_karty_s_nulevym...
2 avito.ru/moskva/telefony/blackberry_bold_new_r...
3 avito.ru/moskva/telefony/blackberry_bold_blask...
5 vk.com
因此,内部条件:
df['url'].str.contains('avito') & ~df['url'].str.contains('telefony')
这里我们正在寻找包含“avito”而不包含“telefony”的URL:
In [19]:
df['url'].str.contains('avito') & ~df['url'].str.contains('telefony')
Out[19]:
0 False
1 True
2 False
3 False
4 True
5 False
Name: url, dtype: bool
然后,我们用括号括起来,使用第一个代码段中的
~
将上述内容颠倒过来你认为df1=df[~df.url.str.contains(r“avito | telefony”)]
?@jezrael这是否意味着字符串不包含telefony
?@jezrael我认为OP想要df1=df[df.url.str.contains(r“avito”)&~df.url.str.contains(r“avito”)]
但是没有样本数据、编码他们的尝试和所需的输出就不清楚了。你真的能加上这个吗?我加上它来回答。@EdChum-你说得对。我也不清楚,谢谢!我的意思是df1=df[~(df['url'].str.contains('avito')&~df['url'].str.contains('telefony'))]
。对不起,我的问题不清楚。
In [19]:
df['url'].str.contains('avito') & ~df['url'].str.contains('telefony')
Out[19]:
0 False
1 True
2 False
3 False
4 True
5 False
Name: url, dtype: bool