删除字段中字符串长度超过 pandas 的行

Delete rows with pandas an excessive length of a string in a field

我想在数据框中的一列中删除 pandas 字段中过长的字符串,示例:

email,name,user
test1@hotmail.com,joe,4321
test1.test2.test3._4567865433_testqwerty@gmail.com,rey,9876
test-_2@aol.com,loy,6543

简而言之,在这种情况下删除带有太长电子邮件的字段。

email,name,user
test1@hotmail.com,joe,4321
test-_2@aol.com,loy,6543

你知道一个简单的方法吗?

你可以做一个长度条件,比如:

import pandas as pd
  
df = pd.read_csv('test.csv')
df = df[df['email'].map(len) < 20]
print(df.head)

输出:

email name  user
0  test1@hotmail.com  joe  4321
2    test-_2@aol.com  loy  6543>

如何将电子邮件长度限制在 50 个字符:

df[df['email'].str.len()<51]

如何将任何字符串字段限制为 50 个字符:

df[df.applymap(lambda x: len(x) if isinstance(x, str) else 0).lt(51).all(axis=1)]