【问题标题】:Why do my data frames create new rows when concatenated?为什么我的数据框在连接时会创建新行?
【发布时间】:2020-02-27 10:08:30
【问题描述】:

我正在尝试合并两个数据框。一个形状为1725 rows x 3 columns,另一个形状为1725 rows x 8 columns

我将它们与res = pd.concat([dataSet, onehotDataFrame], axis=1) 合并并得到一个形状的数据框 1810 rows x 11 columns.

这些列看起来没问题,但为什么结果中有 85 行?

需要注意的是,原始数据的形状是(1810, 7),我用的是

extractedCols = remove_columns(originalDF, remove_from_all)
noDuplacates = extractedCols.drop_duplicates() 

为了获得一个(1725, 4) 数据框,我在合并之前删除了另一列。

【问题讨论】:

    标签: python pandas dataframe concatenation


    【解决方案1】:

    问题是不同的索引值,所以你需要 DataFrame.reset_indexdrop=True 相同:

    df = pd.concat([dataSet.reset_index(drop=True),
                    onehotDataFrame.reset_index(drop=True)], axis=1)
    

    另一个想法是在concat之前设置一个索引:

    dataSet.index = onehotDataFrame.index
    df = pd.concat([dataSet, onehotDataFrame], axis=1)
    

    【讨论】:

      【解决方案2】:

      另一种简单的方法是,您可以使用df.to_csv() 写入两个数据,然后使用df.read_csv() 再次读取您的数据。这样,你的索引就可以随心所欲了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 2019-11-07
        • 2019-04-15
        • 1970-01-01
        • 2021-01-05
        • 2017-01-28
        相关资源
        最近更新 更多