Python 删除包含多个元素的列
我有一个文本文件1和Python 删除包含多个元素的列,python,pandas,Python,Pandas,我有一个文本文件1和 col0 col1 g1 text g2 text,text g3 text,text,text g4 text g5 text,text,text,text,text 需要使用pandas对其进行修改以删除具有多个文本输出的所有行,应该如下所示 col0 col1 g1 text g4 text 唯一不同的是,如果col1包含扁平字符串,则我的文件总共约有300000行: In [94]: df Out[94]: col0
col0 col1
g1 text
g2 text,text
g3 text,text,text
g4 text
g5 text,text,text,text,text
需要使用pandas对其进行修改以删除具有多个文本输出的所有行,应该如下所示
col0 col1
g1 text
g4 text
唯一不同的是,如果
col1
包含扁平字符串,则我的文件总共约有300000行:
In [94]: df
Out[94]:
col0 col1
0 g1 text
1 g2 text,text
2 g3 text,text,text
3 g4 text
4 g5 text,text,text,text,text
In [95]: df = df.loc[~df.col1.str.contains(',')]
In [96]: df
Out[96]:
col0 col1
0 g1 text
3 g4 text
[105]中的
:df
出[105]:
col0 col1
0 g1[文本]
1 g2[文本,文本]
2 g3[文本,文本,文本]
3 g4[文本]
4 g5[文本,文本,文本,文本,文本]
[106]中的df.col1.str.len()<2
出[106]:
0对
1错误
2错误
3正确
4错误
名称:col1,数据类型:bool
In[107]:df[df.col1.str.len()<2]
出[107]:
col0 col1
0 g1[文本]
3 g4[文本]
此答案基于@MaxU的概念,但这增加了一层泛化,使您能够更改允许的文本
值的数量
df[df.col1.str.count(',') < 1]
col0 col1
0 g1 text
3 g4 text
df[df.col1.str.count(',')<1]
col0 col1
0 g1文本
3 g4文本
这些是字符串还是字符串列表?我猜是字符串列表?请您解释一下第一段代码df=df.loc[~df.col1.str.contains(',')]
@nearchbioinformesearcher如果您的列包含平面字符串,那么我们知道文本
值必须用逗号分隔。如果存在一个逗号,则必须有多个文本
值。MaxU然后过滤数据帧中没有任何逗号的内容,因为只有这些行是只有一个text
值的行。
df[df.col1.str.count(',') < 1]
col0 col1
0 g1 text
3 g4 text