如何去除Python中pandas DataFrame输出内容里的换行符\n
去除DataFrame中换行符的解决方案
有两种可直接落地的处理逻辑:
- 方案一:爬取阶段直接清理(更推荐,从数据源避免脏数据进入后续流程)
在获取元素文本的时候直接替换换行符即可,修改后的爬取代码如下:
weather_list = [] for website in web: date = website.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[3]/div[1]/div[1]/div/div/div[1]/div[1]/div[1]/div').text.replace('\n', '') temp = website.find_element_by_xpath('/html/body/div[2]/div[4]/div/div[3]/div[1]/div[1]/div/div/div[1]/div[1]/div[2]/ul').text.replace('\n', '') weather_item = {'Dates':date, 'Temperature':temp} weather_list.append(weather_item) df = pd.DataFrame(weather_list) print(df)
- 方案二:生成DataFrame后批量清理
如果不想调整原有爬取逻辑,也可以对已生成的DataFrame做统一处理:
如果仅需要清理指定列,执行以下代码:
# 清理Dates列的换行符 df['Dates'] = df['Dates'].str.replace('\n', '', regex=False) # 清理Temperature列的换行符 df['Temperature'] = df['Temperature'].str.replace('\n', '', regex=False)
如果需要清理全表所有字符串类型列的换行符,可以用更简洁的批量处理代码:
df = df.applymap(lambda x: x.replace('\n', '') if isinstance(x, str) else x)
处理后的输出示例:
Dates Temperature 0 Mon 18.Oct min. 23°C 1 Mon 18.Oct min. 23°C 2 Mon 18.Oct min. 23°C 3 Mon 18.Oct min. 23°C 4 Mon 18.Oct min. 23°C
内容的提问来源于stack exchange,提问作者Xin Tax
相关产品推荐
相关产品推荐

