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

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

我正在学习 Python,也许是真实的案例场景,并且有一个任务是过滤包含 3 个以上单词的公司名称。它位于名为“公司名称”的列中,数据框称为“数据”。我设法将它们放入列表中,并最终也放入数据框中。但是,在数据框中,我发现行位于列的位置,列位于行的位置。感觉就像在它周围走来走去。

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 参数,但它 returns,有点奇怪,来自数据框的项目列表。不确定这是否是正确的方法,因此决定寻求帮助。非常感谢!

使用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

您可以在这里找到答案: How do I select rows from a DataFrame based on column values?

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

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