我想从 pandas 数据框中删除行,其中包含特定列中长度大于所需长度的字符串。
例如:
输入帧:
X Y
0 Hi how are you.
1 An apple
2 glass of water
3 I like to watch movie
现在,假设我想从数据框中删除长度大于或等于 4 的字符串的行。
所需的输出帧必须是:
X Y
1 An apple
2 glass of water
列“X”中值为 0,3 的行被删除,因为第 0 列中的单词数为 4,第 3 列中的单词数分别为 5。
首先按空格分割值,获取行数Series.str.len http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.len.html并通过反转条件检查>=
to <
with Series.lt http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.lt.html for boolean indexing http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#boolean-indexing:
df = df[df['Y'].str.split().str.len().lt(4)]
#alternative with inverted mask by ~
#df = df[~df['Y'].str.split().str.len().ge(4)]
print (df)
X Y
1 1 An apple
2 2 glass of water
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)