【问题标题】:pd.concat in pandas is giving a TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are validpandas 中的 pd.concat 给出了 TypeError: cannot concatenate object of type '<class 'str'>';只有 Series 和 DataFrame obj 是有效的
【发布时间】:2020-08-17 18:00:13
【问题描述】:

我有 2 个数据框。我正在对它们进行切片以创建 2 个子集数据框。创建子集后,我想连接这两个子集,然后分析连接的子集。

第一个子集数据帧

year_d_df = df_calender[['year']]

第二个子集数据帧

daily_df_train = pd.DataFrame(df_train.loc[:,'d_1':].sum(), columns = ['Count'])

重命名第二个子集数据帧索引以使其与子集数据帧 1 相同。这是连接的先决条件。索引必须相同,否则 NaN 值将作为连接过程的一部分插入。

idx=0
for value in daily_df_train.index:
    if idx < 1914:
        daily_df_train.rename({value: idx}, axis = 'index', inplace=True)
        idx += 1

创建了 2 个以上的子集。如果我对它们进行类型处理,它们将作为数据框返回。但是当我尝试连接它们时,我得到了 TypeError。

连接子集数据帧:

yearly_trend = pd.concat(['daily_df_train','years_d_df'])

TypeError                                 Traceback (most recent call last)
<ipython-input-101-e5e68495a055> in <module>
        yearly_trend = pd.concat(['daily_df_train','years_d_df'])

----Error
~\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py

TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid

两个子集都是数据框。它们都有 1 列,每列都是 int64 类型。那么,这段代码为什么会产生 TypeError 呢?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我认为问题在于变量标识符用引号引起来。因此,您尝试连接字符串而不是数据帧本身。试试:

        yearly_trend = pd.concat([daily_df_train,years_d_df])
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 2021-12-11
      • 1970-01-01
      • 2022-01-21
      • 2020-05-17
      • 1970-01-01
      • 2022-12-27
      • 2021-06-06
      • 2017-06-22
      相关资源
      最近更新 更多