python - 在 Pandas 中为操作指定列
问题描述
我不是编码员,但正在使用 python 3 中的 pandas 来修改其他人编写的程序,以从 CSV 文件的列中删除 HTML。在原始代码中,它要求用户输入列名,就像底部的代码一样,但我的 csv 文件将始终具有相同的列标题,所以我不希望有这个输入步骤,而只包括列名在程序本身。
我试图替换这一行:
col = input("Enter column name: ")
当我手动输入列名(输出一个清除了 HTML 的新列)时,它的工作方式与它应该的方式完全相同,其中:
col = df['ColumnName']
和许多其他变体,但无论我尝试什么都会给我各种错误。我应该使用什么语法来简单地让它直接在我命名的列上运行,而不需要手动输入。非常感谢帮忙。
import pandas as pd
import re
import html
def cleanhtml(raw_html):
cleanr = re.compile('<.+?>')
cleantext = re.sub(cleanr, ' ', str(raw_html))
clean = re.sub('\s+',' ',cleantext)
return html.unescape(clean)
file = input("Enter CSV File name (without '.csv' at the end): ")
d = pd.read_csv("%s.csv" % file )
df = pd.DataFrame(d)
col = input("Enter column name: ")
df[col][0:5]
df['clean'] = df[col].apply(cleanhtml)
解决方案
而不是手动接受列名,您可以将输入命令替换为您想要的列名,即
col = input("Enter column name: ")
和
col = 'columnName'
推荐阅读
- excel - VBA - 是否有带有 ELSE 选项的“错误”语句?
- c# - GetQueuedCompletionStatus 导致 CPU 在定时场景中出现峰值?
- javascript - 搜索栏引导手风琴的折叠/展开按钮
- ember.js - “一些相关的记录没有加载”,但它们是
- r - 在 ggplot2 中自定义条形图
- angular - 在 angular5 中发送基于选定用户的表单数据
- php - 如何使用 Wordpress 元框保存多个文本框
- python - 如何运行多个函数并创建一个列表?
- ballerina - 如何为芭蕾舞演员设置 http 代理?
- java - 创建 AnnotationActionEndpointMapping bean 时出错