Pandas读取的string类型Symbol列拼接URL出现报错如何解决
问题定位
- 误用
.text属性:text是BeautifulSoup解析得到的HTML标签对象的专属属性,pandas中存储的字符串值直接取值即可,额外加.text会触发属性不存在的报错 - 遍历逻辑错误:
col = data.head(len(data))实际是完整的DataFrame对象,for i in col遍历得到的是DataFrame的列名,而非你需要的Symbol列的每行取值,拼接时你拿到的是整列Series对象而非单个字符串,自然会报错 - 多余的大括号:你写的
url = {xxx}会生成集合类型的对象而非URL字符串,如果只需要字符串格式的URL,不需要用大括号包裹内容
修复后代码
如果你需要遍历Symbol列所有值生成对应URL,可以直接使用以下代码:
import pandas as pd data = pd.read_csv("fornews_list.csv") data['Symbol'] = data['Symbol'].astype("string") # 逐个打印拼接后的URL for symbol in data['Symbol']: url = "http://finance.com/quote.ashx?t=" + symbol print(url)
如果你需要把生成的URL存为新的列保留在原表中:
data['url'] = "http://finance.com/quote.ashx?t=" + data['Symbol'] # 查看生成结果 print(data[['Symbol', 'url']])
内容的提问来源于stack exchange,提问作者Leah
相关产品推荐
相关产品推荐

