簡體   English   中英

pandas 中的 pd.concat 給出 TypeError: cannot concatenate object of type '<class 'str'> '; 只有 Series 和 DataFrame 對象有效</class>

[英]pd.concat in pandas is giving a TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid

我有 2 個數據框。 我正在對它們進行切片以創建 2 個子集數據框。 創建子集后,我想連接這兩個子集,然后分析連接的子集。

第一個子集 dataframe

year_d_df = df_calender[['year']]

第二個子集 dataframe

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

重命名第二個子集 dataframe 索引以使其與子集 dataframe 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 個子集。 如果我對它們進行類型,它們將返回為 dataframe。 但是當我嘗試連接它們時,我得到了 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

兩個子集都是 dataframe。 它們都有 1 列,每列都是 int64 類型。 那么,為什么這段代碼會產生 TypeError 呢?

我認為問題在於變量標識符用引號引起來。 因此,您嘗試連接字符串而不是數據幀本身。 嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM