小编Ani*_*rio的帖子

pandas 中的 pd.concat 给出了 TypeError: 无法连接 '<class 'str'>' 类型的对象;仅 Series 和 DataFrame 对象有效

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

第一个子集数据帧

year_d_df = df_calender[['year']]
Run Code Online (Sandbox Code Playgroud)

第二个子集数据帧

daily_df_train = pd.DataFrame(df_train.loc[:,'d_1':].sum(), columns = ['Count'])
Run Code Online (Sandbox Code Playgroud)

重命名第二个子集数据帧索引,使其与子集数据帧 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
Run Code Online (Sandbox Code Playgroud)

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

连接子集数据帧:

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
Run Code Online (Sandbox Code Playgroud)

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

python pandas

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

pandas ×1

python ×1