python - 如何修复 TypeError : cannot concatenate object of type '<class ' pandas. io.parsers.TextFileReader'>';只有 Series 和 DataFrame 对象有效?

标签 python pandas csv concatenation export-to-csv

我正在尝试读取 csv 文件并将它们连接起来并将它们输出为一个 csv 文件。我不断收到此错误:

TypeError: cannot concatenate object of type '< class 'pandas.io.parsers.TextFileReader'>'; only Series and DataFrame objs are valid;

我不知道如何解决它。我是初学者,所以我将不胜感激任何帮助!谢谢你!这是我写的代码:

csv.field_size_limit(sys.maxsize)
df1 = pd.read_csv('file1.csv', chunksize=20000)
df2 = pd.read_csv('file2.csv', chunksize=20000)
df3 = pd.read_csv('file3.csv', chunksize=20000)
df4 = pd.read_csv('file4.csv', chunksize=20000)
df5 = pd.read_csv('file5.csv', chunksize=20000)
df6 = pd.read_csv('file6.csv', chunksize=20000)

frames = [df1, df2, df3, df4, df5, df6]
result = pd.concat(frames, ignore_index=True, sort=False)
result.to_csv('new.csv')

最佳答案

如果您调用 read_csv 并传递 chunksize 参数,则:

  • 它返回一个TextFileReader对象,
  • 可以使用,例如循环读取和处理 连续的 block 。

如何使用“分块”CSV 文件读取的示例:

reader = pd.read_csv('input.csv', chunksize=20000)
for chunk in reader:
    # Process the chunk (DataFrame)

或者也许您想要:

  • 从每个源文件仅读取最初的 20000 行
  • 将它们连接到一个新的 DataFrame 中?

如果是这种情况,请传递nrows=20000(而不是chunksize), 读取每个文件时。 然后所有返回的对象将只是 DataFrame,您将能够 连接它们。

关于python - 如何修复 TypeError : cannot concatenate object of type '<class ' pandas. io.parsers.TextFileReader'>';只有 Series 和 DataFrame 对象有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60017761/

相关文章:

python - python 中的成员资格测试比 set() 更快

python - 使用 MacPorts 安装后找不到 virtualenv 命令

python - 从 Pandas 数据框中过滤掉冗余的重复数据

php - PHP 中 HEREDOC 字符串内的正则表达式

csv - Cassandra COPY FROM 丢失大量行

vb.net - 读取字段中包含 LineFeeds 的 Csv 文件

python - 每次关闭数据库都是正确的吗?

python - Cumprod 在 Python 中给出 -inf

python - 仅当 Pandas 中的值为空/空时才合并

python - 精炼Python代码以供使用(跳过重复步骤)