Python 在csv文件中查找Word并使用循环实现它
我有一个名为df的数据帧,它有两列Python 在csv文件中查找Word并使用循环实现它,python,pandas,dataframe,if-statement,Python,Pandas,Dataframe,If Statement,我有一个名为df的数据帧,它有两列 Company name Company website 0 Maersk Drilling http://www.maerskdrilling.com/ 1 CICLAGUA SA https://simetriagrupo.com/ 2 Enel http://www.enel.com/ 3 Enovos Luxembourg http://www.enovos.lu/ 4 DTEK http:/
Company name Company website
0 Maersk Drilling http://www.maerskdrilling.com/
1 CICLAGUA SA https://simetriagrupo.com/
2 Enel http://www.enel.com/
3 Enovos Luxembourg http://www.enovos.lu/
4 DTEK http://www.dtek.com/
现在我试图实现的是,我试图找出存在“gc”字的公司名称,并将其存储到新的数据帧df1中
for i in range(0,a):
if 'gc' in df['Company name'][i]:
df1["Company Name"]= df['Company name'][i]
df1["URL"]=df['Company website'][i]
else:
pass
但这段代码显示了错误
1 for i in range(0,a):
----> 2 if 'word' in df['Company name'][i]:
3 df1["Company Name"]= df['Company name'][i]
4 df1["URL"]=df['Company website'][i]
5 else:
TypeError: argument of type 'float' is not iterable
您得到的错误是因为df['Company name']不可编辑,无法对其编制索引。您可以做的是:
df = pd.DataFrame(np.array([["name 1 gc", "gc blalkdd"], ["name 2", "asdfsa3"], ["name 3 gc", "agsd gc asd"]]),
columns=['Company name', 'Company website'])
df_new = pd.DataFrame(columns=['Company name', 'Company website'])
for i in range(len(df)):
row = df.iloc[i]
if 'gc' in row['Company name']:
to_append_s = pd.Series(row.values.tolist(), index = df.columns)
df_new = df_new.append(to_append_s, ignore_index=True)
else:
pass
在这里,您可以在数据框df
上循环,检查列Company name是否包含“gc”,如果是,请附加到new\u df
。结果:
Company name Company website
0 name 1 gc gc blalkdd
1 name 3 gc agsd gc asd
您可以对数据帧进行切片
#直接匹配“gc”
df1=df[df['公司名称]=='gc']
#或选择包含“gc”的所有名称
df1=df[df['Company name'].str.contains('gc')]