繁体   English   中英

使用 dataframe 列中的字符串访问行,其中使用 Pandas 在单词之间包含 2 个或更多空格

[英]Access rows with string in dataframe column, which contain 2 or more spaces between words using Pandas

我正在学习 Python,也许是真实案例,并获得了过滤包含 3 个以上单词的公司名称的任务。 它在名为“公司名称”的列中,dataframe 称为“数据”。 我设法让它们进入列表,最终也进入 dataframe。 但是,在 dataframe 中,我发现行在列,列在行。 感觉就像在它周围走来走去。

a,b = data.shape
required_data = []

for i in range(a):
    if data["Company Name"][i].count(" ") >= 2:
        required_data.append(data.iloc[i])
    else:
        pass

required_data1 = pd.concat(required_data, axis=1, ignore_index = True)

required_data1

对于axis=0参数,我会使用go,但它会返回来自dataframe的奇怪项目列表。 不确定这是否是正确的方法,因此决定寻求帮助。 非常感谢!

使用str.split将公司名称拆分为单词并计算列表的长度,然后计算 select 右行:

data = pd.DataFrame({'Company Name': ['American Telephone and Telegraph', 
                                      'America Online',
                                      'Capsule Computer',
                                      'International Business MachinesHP']})

required_data1 = data[data['Company Name'].str.split(r'\s+').str.len().ge(3)]
print(required_data1)

# Output
                        Company Name
0   American Telephone and Telegraph
3  International Business MachinesHP

您可以在这里找到答案: 如何根据列值从 DataFrame 中获取 select 行?

在您的情况下,我们可以像这样使用enumerate.iloc

required_data1 = data["Company Name"].iloc[[i for i,x in enumerate(data["Company Name"]) if x.count(" ")>=1]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM