首页 > 解决方案 > 在 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)

标签: pythonpandascsvdataframe

解决方案


而不是手动接受列名,您可以将输入命令替换为您想要的列名,即

col = input("Enter column name: ") 

col = 'columnName'

推荐阅读