生成器对象没有属性项

时间:2020-04-24 07:31:41

标签: python pandas dataframe dictionary generator

将生成器转换为Pandas数据帧时。

reader = csv.DictReader(
    open('/kaggle/input/spanish-football-la-liga-champions/La Liga Champions.csv'),)
# skip the header row
next(reader)
# remove leading and trailing whitespace from all values
reader = (
    dict((k, v.strip()) for k, v in row.items() if v) for row in reader)

df = pd.DataFrame(reader.items(), columns=reader.keys())

出现此错误。

AttributeError: 'generator' object has no attribute 'items'

2 个答案:

答案 0 :(得分:0)

cvs.DictReader不是字典。我相信您可以直接调用pd.DataFrame(reader)(在Python 3.8中已更改为直接返回行作为字典)。

答案 1 :(得分:0)

之后

reader = (
dict((k, v.strip()) for k, v in row.items() if v) for row in reader)

reader是字典的生成器。正如您可以使用可重复的dict来填充数据框一样,您可以执行以下操作:

df = pd.DataFrame(reader)