访问数据框列中包含字符串的行,使用 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]]
我正在学习 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]]