Python 将数据帧的最后一列附加到另一个数据帧

Python 将数据帧的最后一列附加到另一个数据帧,python,pandas,python-3.4,Python,Pandas,Python 3.4,我有一个大的csv文件,我将其转换为pandas.DataFrame。之后,我将这个数据帧分割成几个较小的数据帧,对它们进行处理,并将每个数据帧转换回csv文件 在处理步骤中,我需要将原始数据帧的最后一列附加到较小的数据帧。我试着用df.iloc[:,-1]和df.ix[:,-1]来做这件事 当我这样做时: rating_column = df.iloc[:,-1] #get last column from original dataframe print

我有一个大的csv文件,我将其转换为
pandas.DataFrame
。之后,我将这个数据帧分割成几个较小的数据帧,对它们进行处理,并将每个数据帧转换回csv文件

在处理步骤中,我需要将原始数据帧的最后一列附加到较小的数据帧。我试着用
df.iloc[:,-1]
df.ix[:,-1]
来做这件事

当我这样做时:

        rating_column = df.iloc[:,-1]    #get last column from original dataframe
        print(rating_column)
我得到了正确的结果:

        timestamp
        2015-07-22 21:40:00    passed
        2015-07-22 21:50:00    passed
        2015-07-22 22:00:00    passed
        2015-07-22 22:10:00    failed
但是,当我使用
small_df['rating']=rating_column
将该列添加到较小的数据帧时,small_df仅包含该列的NaN:

        timestamp              average       rating
        2015-07-22 21:40:00         73       NaN
        2015-07-22 21:50:00         74       NaN
        2015-07-22 22:00:00         73       NaN
        2015-07-22 22:10:00        NaN       NaN
如何将此列附加到
小的_df
,而不获取NaN值

以下是读取csv文件的代码:

import pandas as pd
with open(filename, 'r') as csvfile:
        df = pd.read_csv(csvfile, 
                parse_dates=True, 
                index_col=0, 
                sep=';',
                header=None, 
                skipinitialspace=True, 
                low_memory=False, 
                names=range(0,amount_of_columns))

这是因为索引值不匹配,所以它将尝试使用索引对齐。尝试将列添加为普通np数组值:

small_df['rating'] = rating_column.values

但是,以上假设顺序在所有csv中匹配,如果您有一些标识符列,则最好使用它进行连接/合并,以便对齐行值。

这是因为索引值不匹配,所以它将尝试使用索引进行对齐。尝试将列添加为普通np数组值:

small_df['rating'] = rating_column.values

但是,以上假设顺序与所有csv匹配,如果您有一些标识符列,则最好使用该列进行连接/合并,以便对齐行值。

非常感谢,这很有吸引力!我被困在上面大约两个小时。不用担心,如果它解决了你的问题,你可以接受我的回答。我的回答左上角会有一个空的勾号。我本来打算这样做的,但我必须等几分钟才能接受回答。非常感谢,这很有魅力!我被困在上面大约两个小时。不用担心,如果它解决了你的问题,你可以接受我的回答。我的答案左上角将有一个空的勾号。我本来打算这样做的,但我必须等几分钟才能接受答案