我是一个编程或机器学习的初学者,我的代码很难处理。我想从一个有时也包含整数或浮点数的列(这是一个电子邮件交换的列)中删除随机单词,然后要求BERT添加匹配的单词,以进行数据扩充,但我的代码有问题。
import pandas as pd
import nltk
from nltk.tokenize import word_tokenize
# lire les données de la colonne Excel en utilisant pandas
df = pd.read_excel("Output_Summarization/OUTPUT_ocr_OPENAIGOOD.xlsx", usecols="Open_AI_Text")
# itérer sur chaque ligne de la colonne
for index, row in df.iterrows():
# tokeniser le texte de la ligne en mots individuels
words = word_tokenize(row["Open_AI_Text"])
# choisir un mot au hasard à enlever
word_to_remove = random.choice(words)
# enlever le mot du texte
new_text = row["Open_AI_Text"].replace(word_to_remove, "")
# mettre à jour la ligne dans le DataFrame
df.at[index, "Open_AI_Text"] = new_text
# enregistrer le DataFrame mis à jour dans un nouveau fichier Excel
df.to_excel("Texte_Trou.xlsx", index=False)
我100%确定它是我的列名,因为如果我写df['Open_AI_Text'],我可以使用它。
ValueError Traceback (most recent call last)
<ipython-input-44-e9ccdb1ab0b2> in <module>
4
5 # lire les données de la colonne Excel en utilisant pandas
----> 6 df = pd.read_excel("Output_Summarization/OUTPUT_ocr_OPENAIGOOD.xlsx", usecols="Open_AI_Text")
7
8 # itérer sur chaque ligne de la colonne
/usr/local/lib64/python3.6/site-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
294 )
295 warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
--> 296 return func(*args, **kwargs)
297
298 return wrapper
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_base.py in read_excel(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols)
332 skipfooter=skipfooter,
333 convert_float=convert_float,
--> 334 mangle_dupe_cols=mangle_dupe_cols,
335 )
336
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_base.py in parse(self, sheet_name, header, names, index_col, usecols, squeeze, converters, true_values, false_values, skiprows, nrows, na_values, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, **kwds)
924 convert_float=convert_float,
925 mangle_dupe_cols=mangle_dupe_cols,
--> 926 **kwds,
927 )
928
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_base.py in parse(self, sheet_name, header, names, index_col, usecols, squeeze, dtype, true_values, false_values, skiprows, nrows, na_values, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, **kwds)
442
443 data = self.get_sheet_data(sheet, convert_float)
--> 444 usecols = _maybe_convert_usecols(usecols)
445
446 if not data:
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_util.py in _maybe_convert_usecols(usecols)
146
147 if isinstance(usecols, str):
--> 148 return _range2cols(usecols)
149
150 return usecols
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_util.py in _range2cols(areas)
117 cols.extend(range(_excel2num(rng[0]), _excel2num(rng[1]) + 1))
118 else:
--> 119 cols.append(_excel2num(rng))
120
121 return cols
/usr/local/lib64/python3.6/site-packages/pandas/io/excel/_util.py in _excel2num(x)
82
83 if cp < ord("A") or cp > ord("Z"):
---> 84 raise ValueError(f"Invalid column name: {x}")
85
86 index = index * 26 + cp - ord("A") + 1
ValueError: Invalid column name: Open_AI_Text
我试着只使用df[Open_AI_Text]作为df,但是出现了这个问题:
AttributeError Traceback (most recent call last)
<ipython-input-48-17e13b68c999> in <module>
9
10 # itérer sur chaque ligne de la colonne
---> 11 for index, row in df.iterrows():
12 # tokeniser le texte de la ligne en mots individuels
13 words = word_tokenize(row["Open_AI_Text"])
/usr/local/lib64/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
5137 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5138 return self[name]
-> 5139 return object.__getattribute__(self, name)
5140
5141 def __setattr__(self, name: str, value) -> None:
AttributeError: 'Series' object has no attribute 'iterrows'
再次抱歉,我是个实习生
1条答案
按热度按时间fnx2tebb1#
您为
usecols
属性使用了错误类型的值。请检查documentation:usecols:字符串,类似列表,或可调用,默认为None
如果为None,则分析所有列。
如果为str,则表示Excel列字母和列范围的逗号分隔列表(例如“A:E”或“A,C,E:F”)。范围包括两端。
如果list of int,则指示要分析的列号列表(0索引)。
如果是字符串列表,则指示要分析的列名列表。
如果是可调用的,则根据它计算每个列名,如果可调用对象返回True,则分析该列。
根据上述行为返回列的子集。