【问题标题】:What does "TypeError: 'generator' object does not support item assignment" mean?“TypeError:'生成器'对象不支持项目分配”是什么意思?
【发布时间】:2021-04-25 13:32:42
【问题描述】:

当我尝试运行以下代码时,我收到一个名为:TypeError: 'generator' object does not support item assignment 的错误。我该如何解决这个问题?

import os, glob
import pandas as pd
import re
import sys

path = r'C:\Users\Nicole\02_Datenverarbeitung und Analyse\Input'            

all_files = glob.glob(os.path.join(path, "scrapeddata*.csv"))

for files in all_files:
    basic_file_name = files.replace(path, '')
    date = basic_file_name[13:22]

df_from_each_file = (pd.read_csv(f, sep=',', encoding='iso-8859-1', error_bad_lines=False, warn_bad_lines=False) for f in all_files)
df_from_each_file['date'] = 'date'

df_merged = pd.concat(df_from_each_file, ignore_index=True)
df_merged

【问题讨论】:

  • df_from_each_file,尽管有这个名字,但它不是一个数据框 - 它是一个生成器,使用 generator 表达式 value for item in iterable创建。
  • 你想为每个 DF 添加一列?
  • 如何将其更改为数据框?
  • 是的,我想为每个 DF 添加一列。

标签: python pandas date


【解决方案1】:

试试这个:

...
# Use brackets instead of parenthesis
df_from_each_file = [
    pd.read_csv(
        f, sep=",", encoding="iso-8859-1", error_bad_lines=False, warn_bad_lines=False
    )
    for f in all_files
]

# Assign new column to each df
for df in df_from_each_file:
    df["date"] = "date"

# Concat dataframes
df_merged = pd.concat(df_from_each_file, ignore_index=True)

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 2016-07-31
    • 2014-02-18
    • 2017-03-26
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    相关资源
    最近更新 更多